void f()         {             int *p = new int(0x12345678);              printf("p=%08x, ", p);          }
         void main()        {           f();         }
上面哪里内存泄露?为什么?怎么改?新手学习学习

解决方案 »

  1.   

    new 了以后一定要 delete;
      

  2.   

    void f()         {             int *p = new int(0x12345678);              printf("p=%08x, ", p);
                  
                  delete p;  //new之后要delete
              }
      

  3.   

    有没有常见的内存泄露的说明总结?
    我有段比较大的代码,运行2个小时左右内存就爆了。在进程里看其内存状况,是缓慢增加的。
    我程序里没有用到过new
    基本上都是对CString类型的定义、UCHAR imageBuf[704 * 576 * 2]、
    这种也会内存泄露吗?
      

  4.   

    new 和  delete配对使用malloc 和 free 配对使用
      

  5.   


    2G内存用爆,估计你是不是读了很多文件,图片之类的内容进内存没有释放?
    你可以看下是不是有些容器或者map之类的,只增不减的在增加内存使用?
      

  6.   


    的确是一直在对图片进行操作
    但是没用过map之类的容器啊
      

  7.   

    哦,看错,我以为是
    int *p = new(0x12345678) int;