我遇到了错误
"The expression needs to be a constant"
当我尝试这样做时:
float mat1[m_Floats.size()][iNumClass];
我可以欺骗编译器 (VS2010) 编译它吗?
最佳答案
没有。只有 C99 指定动态数组分配(即大小仅在编译时已知)。也许有标准的 MSVC 扩展,但您应该使用 new
以规范的方式创建指针数组和每个浮点子数组,例如:
float **mat1 = new float*[m_Floats.size()];
for (int i = 0; i < m_Floats.size(); ++i) {
mat1[i] = new float[iNumClass];
}
关于C++:调整二维 vector 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19449807/