**只貼「有時間限制的作業題、留 QQ」無法獲得有效幫助。** 請按以下模板重新發帖:
【環境】OS: Windows 10 / Ubuntu 22.04 | 編譯器: GCC 13.2 / MSVC 19.38 | 編譯命令: gcc -Wall -Wextra -std=c11 -o prog main.c
【問題】具體現象:編譯錯誤(貼完整錯誤信息) / 運行崩潰(段錯誤/異常退出碼) / 輸出不符預期(貼輸入、預期輸出、實際輸出)
【代碼】完整可編譯最小代碼 (≤ 50 行,去除無關業務邏輯):
```c
// 你的代碼
```
【已嘗試】1. 加了 -Wall 仍無警告 2. 用 GDB 跑到第 42 行 segfault 3. 用 Valgrind 報 Invalid read at ...
【預期】程序應輸出 "Hello" 並正常退出
| 現象 | 高概率原因 | 驗證/修復命令 |
|---|---|---|
編譯錯誤: undefined reference to 'main' | 主函數寫成 void main() / 拼寫錯誤 mian() / 多文件未鏈接 | 改為 int main(void);檢查所有文件編譯鏈接 |
| 運行崩潰: Segmentation Fault | 數組越界 / 空指針解引用 / 野指針 / 棧溢出 (大局部數組/無限遞歸) | gcc -fsanitize=address -g 重編運行;或 valgrind ./prog |
| 輸出亂碼/錯誤 | scanf 格式串不匹配 / printf 佔位符與參數類型不符 / 緩衝區未刷新 | 檢查每個 % 對應參數;fflush(stdout);用 fgets 替換 scanf |
| 循環不結束/少跑一次 | 邊界條件寫錯 (<= vs <) / 循環變量未更新 / 浮點數比較作循環條件 | 打印循環變量觀察;改用整數計數器;邊界用 i < n 半開區間 |
| 鏈表/樹操作錯誤 | 指針未初始化 / 釋放後未置空 / 斷鏈未重連 / 遞歸基準缺失 | 畫圖推演;每步打印指針地址;assert(ptr != NULL) 關鍵點斷言 |