我在编译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];

09-07 04:19