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

EC筆記:第三局部:16成對運用new和delete

編輯:關於C++

EC筆記:第三局部:16成對運用new和delete。本站提示廣大學習愛好者:(EC筆記:第三局部:16成對運用new和delete)文章只能為提供參考,不一定能成為您想要的結果。以下是EC筆記:第三局部:16成對運用new和delete正文


我們都知道,請求的資源,運用終了後要釋放。但是這個釋放舉措,一定要留意。

舉個例子,很多人靜態分配的資源,在運用之後,往往直接調用了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. 成對地運用new和delete
  2. 不要用typedef去定義一個數組類型,而是運用規范庫提供的容器。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved