【发布时间】:2014-01-21 18:01:58
【问题描述】:
我在以下代码的最后一行收到“预期的常量表达式”错误:
int main() {
const float a = 0.5f;
const float b = 2.0f;
int array_of_ints[int(a*b + 1)];
}
我猜这是因为int(a*b + 1) 在编译期间是未知的,对吧?我的问题是:有什么方法可以对上面的示例进行编码以便它可以工作,并且array_of_ints 的大小为int(a*b + 1)?
对这里发生的事情的任何帮助或见解将不胜感激:)
编辑:我意识到矢量可以解决这个问题。但是,我希望数组的内容在堆栈上。
【问题讨论】:
-
我猜你正在使用 Visual Studio?
-
制作演员表
const int或一起删除演员表 -
使用
new并在堆上动态分配 -
@EdHeal 更好,std::vector
-
@Borgleader - 正确
标签: c++ expression constants