⚠️ 编译错误排查

  • 错误类型: 编译器报错 undefined reference

  • 错误类型: missing include <stdio.h>

    • 解决方法: 在代码顶部添加 #include <stdio.h> 头文件,或检查编译器选项是否启用标准库支持。
    • 📌 提示: 使用 gcc -Wall 可以开启更严格的编译警告

C Compile Errors

⚠️ 运行时错误排查

  • 问题: 程序崩溃或段错误(Segmentation Fault)

    • 可能原因:
      • 访问了未初始化的指针(如 NULL 或野指针)
      • 数组越界访问
      • 内存泄漏导致资源耗尽
    • 解决方法:
      • 使用 valgrind 工具检测内存问题
      • 添加边界检查代码逻辑
      • 通过 gdb 调试器定位崩溃位置
  • 问题: stdio.h 函数调用失败(如 fopen 返回 NULL

    • 解决方法: 检查文件路径权限,确保文件存在且可读写。

C Runtime Errors

🧠 常见陷阱与解决方案

问题类型 解决方案
malloc 分配失败 使用 calloc 或检查系统内存是否充足
strcpy 导致缓冲区溢出 使用 strncpysnprintf 替代
fseek 操作异常 确保文件指针有效且未到达文件末尾

深入学习C标准库函数用法

📚 推荐阅读

C Debugging Tips