+ -
当前位置:首页 → 问答吧 → new和delete不配对也不内存泄露?

new和delete不配对也不内存泄露?

时间:2010-07-27

来源:互联网

  1. #include <unistd.h>
  2. #include <stdio.h>

  3. class A {
  4. public:
  5.     int i[2];
  6.     int * pi;
  7. };

  8. int main() {
  9. while(true) {
  10.     A * pa = new A[2];
  11.     delete pa;
  12. }

  13.     return 0;
  14. }
复制代码
g++编译以上代码,居然内存不泄露。。。

作者: wishel   发布时间: 2010-07-27

泄露是跑的时候才看出来的。

作者: prolj   发布时间: 2010-07-27

回复 wishel
LZ不知所云。。。。

作者: donglongchao   发布时间: 2010-07-27

你怎么知道内存没泄漏?

作者: davelv   发布时间: 2010-07-27

http://www.chinaunix.net/jh/23/311058.html

作者: efolzl   发布时间: 2010-07-27

运行程序, 然后top看内存你就知道泄不泄了

作者: mgqw   发布时间: 2010-07-27

你是怎么看出来内存没有泄露的???????

作者: chinesedragon   发布时间: 2010-07-27

lz以为g++可以智能到告诉你,哎呀!漏了!漏了!真的漏了!

作者: prolj   发布时间: 2010-07-27

new[],delete

貌似那个OwnWaterloo大侠说过啊,是未定义结果
有可能new[],然后delete只是没有调用析构函数....

作者: egmkang   发布时间: 2010-07-27

我晕 ,少说了两句
是g++编译,运行的
用top看,不泄露
把delete那句去掉,很快吃光内存

作者: wishel   发布时间: 2010-07-27

用ms的vc编译运行,结果一样,不泄露

作者: wishel   发布时间: 2010-07-27

再补一下,上面的A的析构函数如果定义了的话,就会coredump。

作者: wishel   发布时间: 2010-07-27



QUOTE:
efolzl 发表于 2010-07-27 15:49




    赞一个!

作者: jssfy   发布时间: 2010-07-27

结果没错不意味着做法正确

作者: hellioncu   发布时间: 2010-07-27



QUOTE:
efolzl 发表于 2010-07-27 15:49


UP下,这个解释的好

作者: davelv   发布时间: 2010-07-27

相关阅读 更多