ホームページ >バックエンド開発 >C++ >C で定数の配列サイズが必要なのはなぜですか:「式には定数値が必要です」

C で定数の配列サイズが必要なのはなぜですか:「式には定数値が必要です」

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-11 08:51:15643ブラウズ

Why Does C   Require Constant Array Sizes:

配列サイズは定数である必要があります: 「式には定数値が必要です」

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。