首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C++動態內存分配與釋放:new/delete操作詳解

     編輯:關於C語言

C++動態內存分配與釋放:new/delete操作詳解

new 運算符分配內存

int *pint = new int(1024);      // 單個int,初始值1024
int *pia  = new int[4];         // 4個int的數組,無初始化
  • 返回類型為 int*,指向堆上分配的內存首地址。
  • 分配失敗拋出 std::bad_alloc 異常(或返回 nullptr 視編譯器/標準版本)。

delete 運算符釋放內存

delete pint;      // 釋放單個對象
delete [] pia;    // 釋放數組,必須帶 []
  • delete 僅釋放內存,不置空指針,建議釋放後手動置 nullptr。
  • 數組釋放若漏寫 [] 導致未定義行為(僅析構首元素)。

注意事項

  • 配對使用:new 對應 delete,new[] 對應 delete[]。
  • 避免重複釋放、釋放非堆指針、使用已釋放內存。
  • 現代 C++ 建議使用智能指針(unique_ptr, shared_ptr)自動管理生命週期。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved