完成功能下:
C++中产生一个256X256大小的数组A;现在要在这个数组显示为一个灰度图像,然后把该数组里面的每一个值乘2后返回给原数组:
C++程序如下:
第一个memcpy函数处可以直接用sizeof(A)
但是在第二个memcpy函数处不能直接用sizeof(mxGetPr(im)),而要在后面乘上数组中的元素数目。
这里sizeof(mxGetPr(im))只是一个指针的长度(这里为4)。
更正:
上面memcpy((void *)A,(void *)mxGetPr(im),sizeof(mxGetPr(im))*256*256); 中的sizeof(mxGetPr(im))*256*256这里还是有问题。
这里应该用sizeof(A)或者用sizeof(im里面存储的元素型)*mxGetNumbeOfElements(im);
sizeof(A)=sizeof(A中存储的元素类型)×A中元素个数;
此例中为:sizeof(A)=sizeof(double)*(256*256);