首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言記憶體管理:NULL 指標 vs malloc 動態分配區別

     編輯:程式設計綜合問答

`ElemType *p = NULL` 與 `ElemType *p = (ElemType*)malloc(sizeof(ElemType))` 有何不同?

對比

特性NULL 指標malloc 分配
記憶體區域無(指向 0)堆區
可寫入資料❌ 解引用崩潰✅ 可存取 `sizeof(ElemType)` 位元組
生命週期編譯期確定執行期動態,需 `free(p)` 釋放
失敗風險無記憶體不足回傳 NULL,必須檢查

口訣:**棧上存指標,堆上存資料**。指標變數本身在棧,`malloc` 從堆拿空間給指標指向。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved