繁体中文
高级搜索
 
首页 | Web | Java | VC/MFC | VB | Delphi | C/C++ | C++ Builder | 其他开发语言 | .NET技术 | 移动平台 | MSSQL | PowerBuilder | DB2 | Oracle | 其他数据库开发 | Linux/Unix社区 | 多媒体/设计 | 硬件/嵌入开发 | Windows专区 | 硬件使用 | 软件培训/认证/考试

当前位置:首页 >> VC/MFC >> 基础类 >> 多次动态分配内存的问题
多次动态分配内存的问题
作者:   来源: 发表时间:2007-02-28  字号:  

因为多次传递图像数据需要用到临时的中间缓冲区,且大小不一样。
以下的GlobalAlloc等用法有没有问题?程序运行时会出错
BYTE* pTempBuf=NULL;
HGLOBAL hTemp;
hTemp=GlobalAlloc(GHND,100);
for(int i=0;i<nCount;i )
{
GlobalReAlloc(hTemp,GetSize(i),GMEM_MOVEABLE);
pTempBuf=(BYTE *)GlobalLock(hTemp);
//
//using pTempBuf...
//
GlobalUnlock(hTemp);
}
GlobalFree(hTemp);


民工 [等级:◆(初级)] (信誉值: 100) 回复于: 2006-5-27 22:51:51 Top

GlobalFree(hTemp);是不是该放到里边去?


西时地恩 [等级:◆(初级)] (信誉值: 100) 回复于: 2006-5-27 23:05:52 Top

放在里面和外面都是出错
这样用GlobalReAlloc 没问题吗


汪洋中的一片叶子 [等级:◆◆◆◆◆(中级)] (信誉值: 100) 回复于: 2006-5-27 23:09:09 Top

你的GetSize(i)函数怎么写的?


逍遥小子 [等级:◆◆◆◆(中级)] (信誉值: 99) 回复于: 2006-5-27 23:14:27 Top

我觉得应该放在外面,因为GlobalAlloc才是分配,GlobalReAlloc是在原来的基础上从新分配,如果内存需要从新在另一个内存区分配,他会把原来的释放掉所以只要最后释放就可以了


太平洋 [等级:★★(中级)] (信誉值: 145) 回复于: 2006-5-28 14:30:55 Top

调试看看,哪一句出错?



!注意:如果您发现此文章出现影响您的阅读的状况,请从浏览器地址栏里复制本文的链接到留言本报告给站长解决!
  • 上一篇: 如何在xxxApp文件中调用CXXView中的控件变量?
  • 下一篇: 分割视图

  • >> 联系我们请给我们留言·留言本
    本站所有提供的信息软件资料均来自网络,版权及著作权归原作者所有,如果无意中侵犯了您的相关权利或触及法律法规,请给我们留言, 我们将在24小时内删除。
      浙ICP备06029577号  程序员贴吧