配列サイズは定数である必要があります: 「式には定数値が必要です」
C で配列を初期化する場合、配列サイズがわかっている必要がありますコンパイル時に。これは、配列の行次元と列次元の値が定数式である必要があることを意味します。
次の例を考えてみましょう。
int row = 8; int col = 8; int [row][col]; // error: expression must have a constant value
このコードでは、配列は、変数名。さらに、行変数と列変数は定数ではないため、コンパイラはコンパイル時に配列のサイズを決定できません。これにより、「式には定数値が必要です」エラーが発生します。
動的に割り当てられた配列
動的にサイズ変更された配列を作成するには、次を使用してメモリをヒープに割り当てる必要があります。新しいオペレーター。メモリ リークを防ぐために、割り当てられたメモリは削除を使用して割り当てを解除する必要があります。
// Allocate the array int** arr = new int*[row]; for (int i = 0; i < row; i++) arr[i] = new int[col]; // Use the array // Deallocate the array for (int i = 0; i < row; i++) delete[] arr[i]; delete[] arr;
固定サイズの配列
固定サイズの配列の場合、行と列の次元は次のように指定する必要があります。 const:
const int row = 8; const int col = 8; int arr[row][col];として宣言されます。
以上がC で定数の配列サイズが必要なのはなぜですか:「式には定数値が必要です」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。