2011-03-06 14 views
0
int * const front = mmap(0, sizeof(int), PROT_READ|PROT_WRITE,   MAP_SHARED|MAP_ANONYMOUS, -1, 0); 
int * const back = mmap(0, sizeof(int), PROT_READ|PROT_WRITE|PROT_EXEC, MAP_SHARED|MAP_ANONYMOUS, -1, 0); 
int * const buffer = mmap(0, sizeof(int)*50, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_SHARED|MAP_ANONYMOUS, -1, 0); 

一定ではなく、私は次のエラーを取得しています:「エラー:初期化子要素が定数ではありません」私はそれを削除するにはどうすればよいエラー:初期化子の要素が

int a[b];のようなことをすれば動作しないことが分かりますが、なぜここでそれが起こっていますか?

答えて

3

あなたは言っていませんが、C++ではなくCで作業している可能性は非常に高く、これらは静的な期間の変数ですか? Cでは、のみのstatic変数を、コンパイル時の定数式の定数式で初期化できます。 function-callはコンパイル時定数式ではありません。

関連する問題