读书人

这个用释放吗解决办法

发布时间: 2012-09-18 16:21:42 作者: rapoo

这个用释放吗
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之后就可以了

读书人网 >C++

热点推荐