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去定義一個數組類型。
忠告: