我在编译C++文件时遇到了一些麻烦,该文件在GCC下可以很好地用作以前的版本。
问题是,我正在使用可变数组大小的 vector :
unsigned int howmany;
std::vector<int>* array_adresses[howmany];
我目前正在使用Visual Studio 2010 C++编译器来构建Matlab 64位Mex文件。
由于VC++不允许我在编译时使用大小未知的数组,因此我收到以下错误消息:
错误2057:应使用常量表达式
错误2466:
错误2133:大小未知
有什么方法可以使用GCC编译器选项来构建64位mex文件,也可以在Matlab下使用其他64位编译器来构建它吗?
提前致谢!!
最佳答案
howmany必须是恒定的,并且必须是定义的数量,例如:
const unsigned int howmany = 5;
std::vector<int>* array_adresses[howmany];
或者,您可以像这样动态定义它:
unsigned int howmany = 5;
std::vector<int>* array_adresses = new std::vector<int>[howmany];