繁体   English   中英

错误:初始化元素不是恒定的

[英]error: initializer element is not constant

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];类的操作是行不通的int a[b]; ,但为什么会在这里发生呢?

您没有说,但是很可能您是在C语言中工作,而不是在C ++中工作,并且这些是静态持续时间的变量吗? 在C语言中,您只能使用编译时常量表达式来初始化静态变量。 函数调用不是编译时常量表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM