程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> EC筆記:第三部分:16成對使用new和delete,ec成對

EC筆記:第三部分:16成對使用new和delete,ec成對

編輯:C++入門知識

EC筆記:第三部分:16成對使用new和delete,ec成對


我們都知道,申請的資源,使用完畢後要釋放。但是這個釋放動作,一定要注意。

舉個例子,很多人動態分配的資源,在使用之後,往往直接調用了delete,而不管申請資源的時候用的是new還是new[]。

如下:

#include <iostream>

using namespace std;

 

int main(){

    int *p;

    p=new int[256];

 

    //某些操作

 

    delete p; //錯誤,和分配資源時的操作不匹配

    

}

但是有時候,我們感覺寫的代碼是沒有問題的,然而卻犯了一些很隱晦的錯誤。比如以下代碼:

#include <iostream>

using namespace std;

 

int main(){

    typedef int MyArray[256];

    MyArray *p=new MyArray;

 

    //一些操作

    

    delete p; //錯誤,此時應該使用delete[]

    

}

 

當我們使用typedef的時候,往往無法看清楚,原有的類型是什麼。

不過這個情況也很好避免,在c++中,我們合理的使用vector,string等容器,幾乎就可以避免數組的使用。而且盡量不要用typedef去定義一個數組類型。

忠告:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved