如何在matlab中运行C代码
How to run C codes in matlab
我想在Matlab中运行c++代码,在我的代码中,我有这个
int max=(int)*mxGetPr(prhs[0]);
double a[max];
但是当我使用mex时,它有这些错误
错误C2057:期望的常量表达式
错误C2466:不能分配一个常量大小为0的数组
'a':未知大小
全部用于第2行,并且我只得到这个文件的错误,(我可以添加示例代码)
知道我该怎么修吗?
问题是max
不是一个常量表达式(或者,至少,没有标记为常量)。要使第二行正常工作,必须将max
设置为常量,因为在执行之前必须知道数组的内存占用(数组在堆栈上分配)。如果你不知道尺寸,你需要使用类似的东西
double *a = mxCalloc(max, sizeof(double));
然后在堆上分配一块内存,允许使用动态大小
相关文章:
- 如何在linux终端中同时编译和运行c++代码
- 尝试用java代码编译和运行c++代码
- 不同/较旧的处理器运行c++代码的方式是否不同
- 无法在 geany 上运行代码。无法执行构建命令
- 运行代码时,c++ 会终止进程
- 编译多个C++文件.调用二进制文件以运行代码
- 分段故障 运行C++代码时出现 SIGSEGV
- 如何分析在 Windows 上运行C++代码?
- 编译器资源管理器(godbolt)如何安全地运行代码?
- 如何在 vim (windows) 中编译和运行 c++ 代码
- 无法在 Visual Studio 代码中生成和运行 C++ 代码
- 连续运行C++代码和 Python 代码
- 在静态初始化期间运行代码
- C++ .我正在尝试通过使用开关内的数组来获取用户输入,但是当我运行代码时,它显示分段错误?
- 我最近更改了编译器路径以运行 c++ 代码,但现在我无法运行任何 python 代码。我该如何解决这个问题?
- 如何在Visual Studio Code的终端内运行C++代码?
- 在注入的 Dll 的 DllMain 中运行代码导致注入超时
- 并行和顺序运行代码时会产生不同的结果
- 运行代码时C++错误
- 在 CortexM0 中从 RAM 运行代码时出现硬故障