1. ホーム
  2. c

[解決済み] Cコンパイルエラーです。"変数サイズオブジェクトが初期化されていない可能性があります"

2022-02-12 08:45:46

質問

以下のコードで、エラー "Variable-sized object may not be initialized" が発生するのですが、なぜでしょうか?

int boardAux[length][length] = {{0}};

解決方法は?

あなたがC99コンパイラ(動的なサイズの配列をサポートしている)を使用していると仮定しています。あなたのコードの問題は、コンパイラが変数宣言を見たときに、配列にいくつの要素があるかを知ることができないことです。 length はコンパイル時定数ではありません)。

その配列を手動で初期化する必要があります。

int boardAux[length][length];
memset( boardAux, 0, length*length*sizeof(int) );