正在阅读:高质量C++编程点滴(一)高质量C++编程点滴(一)

2004-07-05 09:55 出处:CSDN 作者:fireseed 责任编辑:linjixiong

 相关文章:高质量C++编程点滴(二)


  有效解决内存泄露

  一、你需要一个函数将一个数组赋值为等差数列,并将会在函数的外部使用它。

  不合理:





int *GetArray( int n )

{

       int *p = new int[n];

       for ( int i = 0; i < n; i++ )

       {

              p[i] = i;

       }

       return p;

}

 

  合理:


void GetArray( int *p, int n )

{

       for ( int i = 0; i < n; i++ )

       {

              p[i] = i;

       }

}

 

  解析:

  检查内存泄露的最好办法,就是检查完全配对的申请和释放,在函数中申请而在外部释放,将导致代码的一致性变差,难以维护。

  而且,你写的函数不一定是你自己使用的,这样的函数别人会不知道该怎么适当的使用,如果它是一个DLL的导出函数,并且你在不同的平台下使用了,便会导致系统崩溃。最好的解决办法就是在函数调用的外面将内存申请好,函数只对数据进行复制。


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:

键盘也能翻页,试试“← →”键
302 Found

302 Found


Powered by Tengine
tengine