C++崩溃常见问题

在编程实践中,遭遇到了诸如内存无效访问、无效对象、内存泄漏、堆栈溢出等很多C / C++ 程序员常见的问题,最后都是同一个结果:程序崩溃,为解决崩溃问题,过程都是非常让人难以忘怀的;
可谓吃一堑长一智,出现过几次这样的折腾后就寻思找出它们的原理和规律,把这些典型的编程错误一网打尽,经过系统性的分析和梳理,发现其内在机理大同小异,通过对错误表现和原理进行分类分析,把各种导致崩溃的错误进行归类,详细分类如下:
错误类型 具体表现 备注(案例)
声明错误 变量未声明 编译时错误
初始化错误 未初始化或初始化错误 运行不正确
访问错误 1、 数组索引访问越界
2、 指针对象访问越界
3、 访问空指针对象
4、 访问无效指针对象
5、 迭代器访问越界
6、 空指针调用函数
内存泄漏 1、 内存未释放
2、 内存局部释放
参数错误 本地代理、空指针、强制转换
堆栈溢出 调用堆栈溢出:
1、递归调用
2、循环调用
3、消息循环
4、大对象参数
5、大对象变量 参数、局部变量都在栈(Stack)上分配
转换错误 有符号类型和无符号类型转换
内存碎片 小内存块重复分配释放导致的内存碎片,最后出现内存不足 数据对齐,机器字整数倍分配
其它如内存分配失败、创建对象失败等都是容易理解和相对少见的错误,因为目前的系统大部分情况下内存够用;此外除0错误也是容易理解和防范;
---------------------
作者:思影影思
来源:CSDN
原文:https://blog.csdn.net/lk142500/article/details/80563552
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值