免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8575 | 回复: 7
打印 上一主题 下一主题

动态分配的指针数组数组释放问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-09 09:35 |只看该作者 |倒序浏览
在程序中有一个动态分配的指针数组,数组的每一项指向一个动态分配的数据结构。
我的想法是:释放的时候先使用for循环delete每一个数据结构,然后delete整个数组
for循环没有问题,但书在delete整个数组的时候,有异常

  1. This may be due to a corruption of the heap, and indicates a bug in XTesterDlg.exe or any of the DLLs it has loaded.
复制代码


请教一下在这种情况下怎么做比较好,多谢

论坛徽章:
0
2 [报告]
发表于 2006-08-09 09:42 |只看该作者
代码没有怎么分析?

删除动态分配的数组用 delete []

论坛徽章:
0
3 [报告]
发表于 2006-08-09 10:24 |只看该作者
写个伪码好了:)



  1. 初始化过程:
  2.     ppUserList = new(UserPro* [UserCount]);
  3.     for(UserCount次循环)
  4.    {
  5.           ppUserList [index] = new UserPro;
  6.     }

  7. 释放过程:
  8.    for(UserCount次循环)
  9.    {
  10.           delete *(ppUserList + index);
  11.     }
  12.     delete[] ppUserList
复制代码


昨天用2005跟了一个下,确认是在最后delete[]上出的问题。但是目前没有发现是什么原因
哪位仁兄如果遇到过类似的问题,请指教一二

论坛徽章:
0
4 [报告]
发表于 2006-08-09 11:32 |只看该作者
不行你可以考虑用标准库提供的容器类代替繁琐的二维数组内存动态分配,动态删除

论坛徽章:
0
5 [报告]
发表于 2006-08-09 13:17 |只看该作者
delete *(ppUserList + index);
这个语句是不是已经把所连带的一片给释放了.

论坛徽章:
0
6 [报告]
发表于 2006-08-09 13:34 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2006-08-09 15:08 |只看该作者
初始化过程:
    ppUserList = new (UserPro*) [UserCount];
    for(UserCount次循环)
   {
          ppUserList [index] = new UserPro;
    }

释放过程:
   for(UserCount次循环)
   {
          delete  *(ppUserList + index);
    }
    delete[] ppUserList

论坛徽章:
0
8 [报告]
发表于 2008-07-01 08:46 |只看该作者
我也遇到了这个问题,我做的是用opengl来显示曲线,但是有了动态创建**后,释放内存的时候报错,是不是与opengl函数的内部有关系呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP