未知的内存泄露,求解~

storyhare 2014-11-30 04:44:55
运行以下代码,会造成内存泄露:

for(int i=0;i!=20;++i){
int** a=new int*[10000000];
for(int i=0;i!=10000000;++i){
a[i]=new int;
}
for(int i=0;i!=10000000;++i){
delete a[i];
}
delete[] a;
}
int i;
cin>> i;(用来暂停,这时看内存使用会有泄露)


当以上循环(外层)为单次时,没有泄露;但,循环达到一定数量后,会泄露,求解???

ps:这是,我的dev-c++的问题,或许,其他平台没有.....
...全文
170 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
storyhare 2014-11-30
  • 打赏
  • 举报
回复
终于了解到了,应该是内存碎片......
unituniverse2 2014-11-30
  • 打赏
  • 举报
回复
引用 5 楼 storyhare 的回复:
任务管理器看内存可能即时性不是很好,循环1000次以上看看,是否有内存降下来的现象。应该是没有漏泄的
这个泄露和一般的不同;其内存使用不会有任何递增,而是循环结束后,部分内存,无法回收。 而且,循环次数越多,无法回收的部分越多;但不会超过运行时申请的最大值。[/quote] 小内存的分配都已经自动做了内存池化的。而系统看到的内存都是调用系统内存管理函数的结果。这两个是完全不一样的东西。 任务管理器中不止一个内存相关的项目,不知道你通过什么项目看出来的 应该是没有泄露。
storyhare 2014-11-30
  • 打赏
  • 举报
回复
引用 6 楼 jerry_dqh 的回复:
任务管理器看的不准确,循环多一些,一直在增长吗?
没有增长,只是循环结束后,部分内存无法回收; 故,我所说的任务管理器,是指:循环结束了,进程内存有几十Mb的内存没有被回收(泄露;本来应该只有1mb左右)。
碼上道 2014-11-30
  • 打赏
  • 举报
回复
引用 5 楼 storyhare 的回复:
[quote=引用 4 楼 jerry_dqh 的回复:] [quote=引用 2 楼 storyhare 的回复:] [quote=引用 1 楼 taodm 的回复:] 你怎么看出的内存会泄露?
任务管理器.....[/quote] 任务管理器看内存可能即时性不是很好,循环1000次以上看看,是否有内存降下来的现象。应该是没有漏泄的[/quote] 这个泄露和一般的不同;其内存使用不会有任何递增,而是循环结束后,部分内存,无法回收。 而且,循环次数越多,无法回收的部分越多;但不会超过运行时申请的最大值。[/quote] 任务管理器看的不准确,循环多一些,一直在增长吗?
storyhare 2014-11-30
  • 打赏
  • 举报
回复
引用 4 楼 jerry_dqh 的回复:
[quote=引用 2 楼 storyhare 的回复:] [quote=引用 1 楼 taodm 的回复:] 你怎么看出的内存会泄露?
任务管理器.....[/quote] 任务管理器看内存可能即时性不是很好,循环1000次以上看看,是否有内存降下来的现象。应该是没有漏泄的[/quote] 这个泄露和一般的不同;其内存使用不会有任何递增,而是循环结束后,部分内存,无法回收。 而且,循环次数越多,无法回收的部分越多;但不会超过运行时申请的最大值。
碼上道 2014-11-30
  • 打赏
  • 举报
回复
引用 2 楼 storyhare 的回复:
[quote=引用 1 楼 taodm 的回复:] 你怎么看出的内存会泄露?
任务管理器.....[/quote] 任务管理器看内存可能即时性不是很好,循环1000次以上看看,是否有内存降下来的现象。应该是没有漏泄的
taodm 2014-11-30
  • 打赏
  • 举报
回复
用任务管理器看内存泄露,你这是在浪费自己的生命。
storyhare 2014-11-30
  • 打赏
  • 举报
回复
引用 1 楼 taodm 的回复:
你怎么看出的内存会泄露?
任务管理器.....
taodm 2014-11-30
  • 打赏
  • 举报
回复
你怎么看出的内存会泄露?

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧