问题1:

mxArray *data = mxCreateUninitNumericMatrix(1, 10, mxDOUBLE_CLASS, mxREAL);
mxSetN(data, 0);
mxDestroyArray(data);

mxDestroyArray将释放10个元素还是0个元素?

问题2:
mxArray *data = mxCreateUninitNumericMatrix(1, 10, mxDOUBLE_CLASS, mxREAL);
double *ptr = mxGetPr(data);
ptr = static_cast<double*>(mxRealloc(ptr, sizeof(double) * 20));
mxSetPr(data, ptr);
mxDestroyArray(data);

mxDestroyArray将释放10个元素还是20个元素?

谢谢,

最佳答案

关于Q1:将释放至少10个元素。 Say docs for mxSetN :



关于第二季度:
docs for mxDestroyArray 中专门说



因此,它将释放分配给sizeof(double) * 20的所有ptr字节。

09-10 03:45
查看更多