`ElemType *p = NULL` 與 `ElemType *p = (ElemType*)malloc(sizeof(ElemType))` 有何不同?
| 特性 | NULL 指標 | malloc 分配 |
|---|---|---|
| 記憶體區域 | 無(指向 0) | 堆區 |
| 可寫入資料 | ❌ 解引用崩潰 | ✅ 可存取 `sizeof(ElemType)` 位元組 |
| 生命週期 | 編譯期確定 | 執行期動態,需 `free(p)` 釋放 |
| 失敗風險 | 無 | 記憶體不足回傳 NULL,必須檢查 |
口訣:**棧上存指標,堆上存資料**。指標變數本身在棧,`malloc` 從堆拿空間給指標指向。