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];
这样的事情就行不通,但为什么会这样呢?
答案 0 :(得分:3)
你还没有说过,但你很可能是在使用C而不是C ++,这些是静态持续时间的变量吗?在C中,您只能 使用编译时常量表达式初始化静态变量。函数调用不是编译时常量表达式。