首頁>Club>
11
回覆列表
  • 1 # 嗯啊

    C++中delete和delete[]的區別如下:在回收用 new 分配的單個物件的記憶體空間的時候用 delete,回收用 new[] 分配的一組物件的記憶體空間的時候用 delete[]。 程式舉例說明:#include <iostream>;using namespace std; class T {public: T() { cout << "constructor" << endl; } ~T() { cout << "destructor" << endl; }}; int main(){ const int NUM = 3; T* p1 = new T[NUM]; cout << hex << p1 << endl; // delete[] p1; delete p1; T* p2 = new T[NUM]; cout << p2 << endl; delete[] p2;} 基本型別的物件沒有解構函式,所以回收基本型別組成的陣列空間用 delete 和 delete[] 都是應該可以的;但是對於類物件陣列,只能用 delete[]。對於 new 的單個物件,只能用 delete 不能用 delete[] 回收空間。 所以一個簡單的使用原則就是:new 和 delete、new[] 和 delete[] 對應使用。

  • 中秋節和大豐收的關聯?
  • 什麼柳暗花明又一村古詩?