在一个 MEX 文件中,我使用以下命令创建了一个输出矩阵(工作正常):
plhs[0] = mxCreateNumericMatrix((mwSize)destLen, 1, mxUINT8_CLASS, mxREAL);
为了加快速度,我想使用未初始化的动态内存,这导致我使用未记录的命令:
plhs[0] = mxCreateUninitNumericMatrix((mwSize)destLen, 1, mxUINT8_CLASS, mxREAL);
在 Win32 和 Win64 中工作也很好。
在我的 Linux 环境中使用完全相同的代码会导致编译器发出以下警告:
warning: assignment makes pointer from integer without a cast [enabled by default]
并且代码崩溃,这表明返回的整数值不是指向正确内存地址的整数。
我能做些什么来使用mxCreateUninitNumericMatrix
?