郁闷,设置SAFEARRAY怎么会影响到别的指针?

kangezzj 2003-10-15 10:31:43
我设置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 变成了???,往后当然也不正确了,
请教这是什么原因?
...全文
24 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kangezzj 2003-10-16
  • 打赏
  • 举报
回复
有没有大侠指点啊?急啊
对了,上面的代码贴错了,
应该是 double* data = new double [27];
但错误依然

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧