首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VC++中的指针运算(三重指针赋值)

VC++中的指针运算(三重指针赋值)
EN

Stack Overflow用户
提问于 2012-06-01 22:18:50
回答 1查看 209关注 0票数 1

我的场景如下(VC++代码):

代码语言:javascript
运行
复制
IDirect3DSurface9 ***ppp;
IDirect3DSurface9* p;

我调用了CreateOffscreenPlainSurface( , , ,&p,null),现在p将保存D3D表面的地址。所以我想把p赋值给ppp

我就是这么做的

代码语言:javascript
运行
复制
(*(*ppp)) = p;

但是它抛出了运行时异常。我不明白为什么。有人能在这方面帮我忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-01 22:21:00

此赋值引发异常,因为您正在写入未初始化的指针所指向的地址。您需要先为指针分配内存,然后再分配给指针数组,然后才能进行分配。

代码语言:javascript
运行
复制
ppp = new IDirect3DSurface9**[10];  // Pick the right size here
ppp[0] = new IDirect3DSurface9*[5]; // Pick the right size here, too
ppp[0][0] = p;

处理完这些数组后,不要忘记对它们执行delete[]操作。

如果使用指向指针的指针不是显式要求,请考虑使用std::vector<std::vector<IDirect3DSurface9*> >

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10851984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档