標題「大神求解求解 C 語言問題」,內容僅有標題,**零代碼、零錯誤訊息、零環境描述、零預期行為**。這就像走進醫院大喊「醫生我病了」卻拒絕掛號、拒絕描述症狀、拒絕體檢。
## 1. 環境資訊
- 作業系統: Ubuntu 22.04 / Windows 11
- 編譯器: GCC 11.3 / MSVC 19.3 (VS2022)
- 編譯指令: gcc -Wall -Wextra -std=c11 -o prog main.c
## 2. 問題現象
- 編譯錯誤: [貼上完整錯誤訊息]
- 運行崩潰: Segmentation fault (core dumped)
- 邏輯錯誤: 輸入 5 輸出 6,預期 5
## 3. 最小可重現代碼 (MCVE)
```c
// 僅保留能重現問題的核心代碼,移除無關業務邏輯
#include
int main() {
int *p = NULL;
*p = 10; // 故意觸發 segfault
return 0;
}
```
## 4. 已嘗試的排查
- 加了 -g 編譯,用 gdb bt 看到 crash 在 main:4
- 查閱 CERT C INT32-C 規範
- 搜尋 StackOverflow 關鍵字 "null pointer dereference"
## 5. 具體提問
- 為什麼這裡會 segfault?如何正確檢查指標有效性?
#include、main 等完整結構?// ERROR HERE)?GCC: segmentation fault at malloc in multithread)。**提問本身就是除錯過程**。整理 MCVE 時,往往自己就發現了拼寫錯誤、邏輯倒置、頭檔缺失。養成「先造輪子 (MCVE),再問路」的習慣,技術成長最快。