我的场景如下(VC++代码):
IDirect3DSurface9 ***ppp;
IDirect3DSurface9* p;
我打电话CreateOffscreenPlainSurface( , , ,&p,null)
,现在 p 将保存 D3D 表面的地址。所以我想分配p
给ppp
.
所以我在做
(*(*ppp)) = p;
但它抛出了运行时异常。我不明白为什么。任何人都可以帮助我吗?
我的场景如下(VC++代码):
IDirect3DSurface9 ***ppp;
IDirect3DSurface9* p;
我打电话CreateOffscreenPlainSurface( , , ,&p,null)
,现在 p 将保存 D3D 表面的地址。所以我想分配p
给ppp
.
所以我在做
(*(*ppp)) = p;
但它抛出了运行时异常。我不明白为什么。任何人都可以帮助我吗?
此赋值引发异常,因为您正在写入由未初始化指针指向的地址。您需要为指向指针数组的指针分配内存,然后再分配给指针数组,然后才能进行分配。
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*> >
改用。