问题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
字节。