重複の可能性:
非定数初期化子を使用したグローバル変数の定義
私はこのコードを持っています:
#include <stdio.h>
#include <stdlib.h>
int foo (int num, int i)
{
static int* array = malloc(sizeof(int)); // ERROR HERE!!!
printf("%d", array[i]);
return 0;
}
int main(int argc, char *argv[])
{
int i;
for (i = 0; i < 2; i++) {
foo(i, i);
}
return 0;
}
コードを ac ソース ファイルとして保存しましたが、動作しませんか? error prompt
:_
gcc -O2 -Wall test.c -lm -o test
test.c:4:1: error: initializer element is not constant
Compilation exited abnormally with code 1 at Sat Jan 05 21:33:56
ただし、C++ ソース ファイルとして保存すると、問題なく動作します。なんで?誰か私に説明できる人はいますか?