詳細講解動態記憶體分配四大函數:
malloc(size):分配未初始化記憶體。calloc(n, size):分配並歸零。realloc(ptr, new_size):調整記憶體塊大小,可能移動位址。free(ptr):釋放記憶體,使用後指標置 NULL 防野指標。完整範例展示:分配陣列、輸入資料、realloc 擴容、釋放流程,並驗證 realloc 前後位址是否改變。
#include <stdio.h>
#include <stdlib.h>
int main() {
int *p = calloc(10, sizeof(int));
int *p2 = realloc(p, 20 * sizeof(int));
// ... 輸入/輸出/釋放 ...
free(p);
}