ошибка: элемент инициализатора не является константой - PullRequest
0 голосов
/ 06 марта 2011
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];, но почему это происходит здесь?

1 Ответ

3 голосов
/ 06 марта 2011

Вы не сказали, но вполне вероятно, что вы работаете в C, а не C ++, и что это переменные со статической продолжительностью?В C вы можете только инициализировать статическую переменную с помощью константного выражения время компиляции .Вызов функции не является константным выражением во время компиляции.

...