郁闷,设置SAFEARRAY怎么会影响到别的指针?
我设置SAFEARRAY的过程中,一个指向实数的指针受到了影响
我的代码如下:
double* data = new double [9];
int i, j, k;
for(i = 0; i < 3; i++)
for(j = 0; j < 3; j++)
for(k = 0; k < 3; k++)
*(data + i*9 + j*3 + k) = 1;
SAFEARRAY InSafeArray;
TVariant DataIn, DataOut;
InSafeArray.cDims = 3;
InSafeArray.cbElements = sizeof(double);
InSafeArray.rgsabound[0].lLbound = 0;
InSafeArray.rgsabound[0].cElements = 3;
InSafeArray.rgsabound[1].lLbound = 0;
InSafeArray.rgsabound[1].cElements = 3;
InSafeArray.rgsabound[2].lLbound = 0; //问题出在此处 !!!
InSafeArray.rgsabound[2].cElements = 3;
InSafeArray.pvData = data;
...
我按步执行,跟踪*data的值,在标注之前,data正常为1,但是执行了标注行后,
*data 变成了???,往后当然也不正确了,
请教这是什么原因?