char *department = NULL;
scanf("%s", department); // 段錯誤:向地址 0 寫入
指針僅存儲地址,**未指向有效內存區域**。`scanf` 將輸入寫入指針指向的地址,野指針導致非法訪問。
char department[256];
scanf("%255s", department); // 限制寬度防溢出
char *department = malloc(256);
if (department) {
scanf("%255s", department);
// 用完 free(department);
}
char *line = NULL;
size_t len = 0;
getline(&line, &len, stdin); // 自動擴容,需 free(line)
指針使用前必須指向合法內存(數組、malloc、getline 分配)。固定長度用棧上數組最簡單;不定長用 `getline`/`%ms` 自動管理。