闂傚倸鍊搁崐宄懊归崶顒€违闁逞屽墴閺屾稓鈧綆鍋呭畷宀勬煛瀹€鈧崰鏍€佸☉妯峰牚闁告劗鍋撳В澶嬩繆閻愵亜鈧垿宕曟繝姘闁跨噦鎷� (0) +1 闂傚倸鍊峰ù鍥х暦閸偅鍙忕€广儱鎷嬮崥瀣煕閳╁喚娈㈠ù纭锋嫹 (0) +1 闂傚倸鍊搁崐鎼佸磹閹间降鍋戦悗娑欋缚椤╂煡鏌i幋锝嗩棄缂佺媭鍨堕弻銊╂偆閸屾稑顏� (0) +1
闂傚倸鍊搁崐宄懊归崶顒€违闁逞屽墴閺屾稓鈧綆鍋呭畷宀勬煛瀹€鈧崰鏍€佸☉妯峰牚闁告劗鍋撳В澶嬩繆閻愵亜鈧垿宕曢弻銉ュ瀭闁秆勵殔閽冪喖鏌i弮鍥モ偓鈧柛瀣尭閳藉鈻嶉褌绨奸柟渚垮姂瀹曟儼顦柡鈧懞銉d簻闁哄洨鍋為ˉ鐐烘倵濮樼偓瀚�闂傚倸鍊搁崐椋庣矆娓氣偓楠炴牠顢曢妶鍡椾粡濡炪倖鍔х粻鎴犲閸ф鐓曢柟閭﹀灱閸ゅ鏌ら弶鎸庡仴闁哄本绋戦埥澶娾枎閹邦喚鈻忕紓鍌氬€风拋鏌ュ疾閻樿钃熼柣鏃傗拡閺佸秵绻濇繝鍌氭灓闁哄棭鍘奸—鍐Χ閸愩劌濮烽梺鐟板殩閹凤拷>>

正在阅读:高质量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的导出函数,并且你在不同的平台下使用了,便会导致系统崩溃。最好的解决办法就是在函数调用的外面将内存申请好,函数只对数据进行复制。


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

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

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
闂傚倸鍊搁崐椋庣矆娴h櫣绀婂┑鐘插€寸紓姘辨喐閺冨牄鈧線寮介鐐茶€垮┑锛勫仧缁垶寮悩缁樷拺闂侇偆鍋涢懟顖涙櫠閹绢喗鐓欐い鏃€顑欏ḿ鎰版煙瀹勭増鍤囩€规洏鍔嶇换婵嬪磼濞嗘劖鈻曟繝鐢靛Х椤h棄危閸涙潙纾婚柟鎹愵嚙缁狀垶鏌ㄩ悤鍌涘闂傚倸鍊搁崐鐑芥倿閿曞倸绠栭柛顐f礀绾惧潡鏌熼幆鐗堫棄缁惧墽绮换娑㈠箣濞嗗繒浠奸梺鍝勫閸庣敻骞冨鈧幃娆撳级閸喚褰戝┑鐐茬摠缁秶鍒掗幘璇茶摕婵炴垯鍩勯弫鍐煥濠靛棙顥犳い锔哄劦濮婃椽宕ㄦ繝鍐炬闂佺懓鍤栭幏锟�