我正在将一些C mex文件转换为纯C ++。显然我需要转换mxarrays和mex函数。
如code所示,它会在第60行创建一个mxarray,
mxArray *mxGradient = mxCreateNumericArray(3, out, mxDOUBLE_CLASS, mxREAL);
并在第61行将其分配给带有mxgetpr的指针
double *gradient = (double *)mxGetPr(mxGradient);
在第68行,它将指针与整数乘法相加,
double *tempGradientVBase = gradient + ( out[0] * out[1]);
我无法理解第68行。这意味着什么?
我对mxarrays和mex文件了解不多。有人可以帮助我吗?
答案 0 :(得分:1)
您粘贴的代码将gradient
视为指向double
数组中第一个double
的指针。截至gradient + ( out[0] * out[1] )
,它表示“在double
开始的out[0] * out[1]
数组中向我指向double
索引gradient
的指针。它相当于&gradient[ out[0] * out[1] ]
。