首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这个用释放吗解决办法

2012-09-18 
这个用释放吗void *pBufNULLSafeArrayAccessData(varBLOB.parray,(void **)&pBuf)n_texm_hge-Texture

这个用释放吗
void *pBuf=NULL;
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
n_tex=m_hge->Texture_Load((const char*)pBuf,lDataSize); //tex从内存中加载
SafeArrayUnaccessData(varBLOB.parray);

这里的指针需要手动释放吗?(void *pBuf=NULL;)


[解决办法]
应该不用,应为你没有分配动态内存。

不过你先得去人你这么用是否正确,只要正确就不用你管内存问题。从经验来看,SafeArrayAccessData应该是在内部分配内存的,不用你管分配和释放。


[解决办法]
关键是SafeArrayAccessData如何处理pBuf的?
如果只是改变指针的指向,就不用释放内存。
如果在SafeArrayAccessData中分配了内存,然后让pBuf指向这块内存,则需要释放内存的。

[解决办法]
http://msdn.microsoft.com/en-us/library/ms891243.aspx
调用SafeArrayUnaccessData之后就可以了

热点排行