可能的重复:
有没有办法用非常量变量初始化数组? (C++) https://stackoverflow.com/questions/972705/is-there-a-way-to-initialize-an-array-with-non-constant-variables-c
我有以下代码:
vector<vector<vec2>> vinciP;
int myLines = -1;
myLines = drawPolyLineFile("vinci.dat", vinciP);
if (myLines > -1)
{
cout << "\n\nSUCCESS";
vec2 vPoints[myLines];
for (int i = 0; i < NumPoints; ++i)
{
vPoints[i] = vinciP[0][i];
}
}
我在“vec2 vPoints[myLines];”行上收到错误这表示表达式必须具有常量值。我不明白为什么会出现此错误,有帮助吗?
是因为 myLines 可能为负数吗?我不知道。
vec2 vPoints[myLines];
Since myLines
不是一个const表达式((这意味着,它在编译时是未知的),因此上面的代码声明了一个可变长度数组,这在 C++ 中是不允许的。只有 C99 具有此功能。您的编译器可能会将其作为扩展(但这是不是标准 C++)。
这种常见问题的解决方案是:使用std::vector<T>
as:
std::vector<vec2> vPoints(myLines);
现在应该可以了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)