固定サイズなしで配列を作成する簡単なコードを書きました。コードをコンパイルしてみましたが、gcc
正常に動作しています。これが機能する理由を説明してください。コンパイル時に配列サイズを知る必要があります。
これが私が使用したコードです。
void f(int k)
{
int a[k];
.....//some operation
}
int main()
{
int i = 10;
f(10);
return 0;
}
固定サイズなしで配列を作成する簡単なコードを書きました。コードをコンパイルしてみましたが、gcc
正常に動作しています。これが機能する理由を説明してください。コンパイル時に配列サイズを知る必要があります。
これが私が使用したコードです。
void f(int k)
{
int a[k];
.....//some operation
}
int main()
{
int i = 10;
f(10);
return 0;
}
この機能はVLA
、可変長配列として知られています。これは、すべての C 標準でサポートされているわけではありません。C11
や などの最近の C 標準 C99
ではサポートされていますが、古い C 標準では「C89」としてサポートされていません。
を使用している場合は、これに関するコンパイラのドキュメントgcc
を参照してください。