重複の可能性:
サイズが一定でない変数を使用して配列を宣言する
これは私のコードです:
const int xsize=150;
char Hey[xsize];
上記の定数を使用して新しい配列Heyを宣言できない理由がわかりません。誰かがこれを手伝うことができますか?
重複の可能性:
サイズが一定でない変数を使用して配列を宣言する
これは私のコードです:
const int xsize=150;
char Hey[xsize];
上記の定数を使用して新しい配列Heyを宣言できない理由がわかりません。誰かがこれを手伝うことができますか?
有効なC89コードではありません。変数がたまたまであっても、変数サイズの配列を宣言することはできませんconst
。
#define
あなたがそれをではなくとして持っていればそれはうまくいくでしょうconst int
。ただし、C99では有効です。GCCおよびその他のコンパイラも、C89モードの拡張機能として提供しています。
const
定数を作成しないためです。読み取り専用オブジェクトを作成します。
オブジェクトと定数の違いは、オブジェクトには特定のメモリ位置が存在することです。定数はソースコードにのみ存在します。
C89では、配列サイズは定数式である必要があります。const
変数は定数式ではありません。これを行うには、C99のVLAを使用する必要があります。