C/C++ 高频报错速查表(开发通用版)

按报错关键字 + 本质原因 + 快速修复整理,区分编译期报错、运行期崩溃、警告类问题,兼顾日常刷题、Qt、嵌入式、项目开发场景。

一、编译期报错(编译不通过,IDE 标红)

报错关键字 问题本质 修复方案
'xxx': undeclared identifier 标识符未定义:变量/函数名拼写错误、忘记头文件、作用域问题 1. 核对拼写;2. 补充 #include 头文件;3. 检查变量作用域(局部变量不能全局访问)
redefinition; multiple initialization 重复定义:头文件重复包含、全局变量重复定义 1. 头文件加保护宏 #ifndef / #define / #endif;2. 全局变量用 extern 声明,仅一处定义
cannot convert "类型A" to "类型B" 类型不匹配,赋值/传参类型错误 强制类型转换,或修改变量定义的类型
expected ';' before identifier 'xxx' 少写分号、括号不匹配、结构体末尾漏分号 检查上一行代码,补充分号/大括号/小括号
'xxx': function does not take N arguments 函数调用参数个数不匹配 对照函数声明,补全/删减调用参数
LNK2019: unresolved external symbol 链接错误:函数只有声明无实现、库未链接、名字改编冲突 1. 补全函数实现;2. 配置链接第三方库;3. C 代码在 C++ 中用 extern "C" 包裹
invalid type argument of unary '*' 解引用空指针/非指针变量 确保 * 后面是合法指针,且指针已初始化

二、运行期崩溃(编译通过,运行闪退)

报错关键字 问题本质 修复方案
段错误 Segmentation fault (core dumped) 非法内存访问:空指针解引用、数组越界、栈溢出 1. 加判断避免空指针访问;2. 严格控制数组下标;3. 大数组改用堆内存 new/malloc
free(): double free detected 重复释放同一块堆内存 释放后置空指针 ptr = nullptr,避免二次释放
heap corruption detected 堆内存越界读写、new/delete 混用(new[] 配 delete) 保证 new ↔ delete、new[] ↔ delete[] 配对
死循环卡死 循环条件永远成立,无退出条件 增加循环终止条件,或加计数器防止无限循环
栈溢出 Stack Overflow 函数递归过深、局部超大数组 限制递归深度,大数组移到全局/堆内存

三、C++ 专属面向对象报错(类、继承、多态)

报错关键字 问题本质 修复方案
private member cannot be accessed 访问私有成员,无权限 改用公有成员函数访问,或调整访问权限
no appropriate default constructor available 无默认构造函数,成员变量/父类无无参构造 1. 手动写无参构造;2. 初始化列表调用带参构造
pure virtual function not overridden 纯虚函数未实现,抽象类被实例化 子类必须重写所有父类纯虚函数
base class is inaccessible 继承权限问题(默认私有继承) 明确继承权限 public
use of deleted function 拷贝构造/赋值运算符被禁用(=delete),或移动语义冲突 避免拷贝对象,改用引用/指针传递

四、指针与内存经典坑(C/C++ 重灾区)

报错现象 问题本质 修复方案
野指针 指针指向已释放的内存、未初始化的随机地址 指针定义即置空,释放后立即置空
内存泄漏 new/malloc 申请内存后未释放 配对使用 delete/free,C++ 优先用智能指针 unique_ptr/shared_ptr
悬垂引用 引用绑定局部变量,函数结束后变量销毁 禁止返回局部变量的引用,改用返回值/堆内存

五、万能排查流程(C/C++ 通用)

1. 编译报错 :优先看第一行报错 ,编译器会把最早出现的错误放在最前面,解决第一个后大量连锁报错会自动消失;

2. 运行崩溃 :用调试模式(Debug)打断点,定位崩溃代码行,重点排查指针、数组、递归、内存释放 ;

3. 链接报错 LNK2019 :90% 是只有声明没有实现 ,其次是第三方库没配置链接;

4. 头文件报错 :一律加头文件保护宏,杜绝重复包含。

六、补充:头文件保护宏(必背模板)

cpp 复制代码
  
#ifndef HEADER_NAME_H
#define HEADER_NAME_H

// 头文件内容

#endif
相关推荐
估值探索者9 小时前
【Python量化选股流水线 #04】选股器好不好用?「昨日候选→今日表现」回看验收
开发语言·python·股票数据·股票数据api接口
爱喝热水的呀哈喽10 小时前
HEJIAN RESEARCH
开发语言·matlab
白露与泡影10 小时前
后端 Java 面试核心八股汇总|高频面试题 + 解析,覆盖基础到进阶
java·开发语言·面试
xifangge202510 小时前
基于 JavaScript 实现 CNC 数控切削参数与螺纹公差纯前端核算引擎
开发语言·前端·javascript
“AI国潮设计-小江”11 小时前
【AIGC实战】Python+SDXL批量生成「潮汕英歌舞冰淇淋蛋糕&红桃粿咖啡」IP,固定角色形象批量出甜品商业效果图
开发语言·人工智能·python·prompt·aigc
鱼很腾apoc11 小时前
【MySQL】第4期 用户管理与 C 语言连接编程详解
linux·服务器·c语言·mysql·connector/c
\光辉岁月/11 小时前
3.包装类
java·开发语言·包装类
衍玊11 小时前
多路转接原理与应用
c++
FRing0312 小时前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
西索斯coding12 小时前
Grok 4.7 调用一直 401 怎么办?不是 Key 过期,是 Authorization 头格式问题——排查全流程 + 修复示例
服务器·开发语言·ai·php