当前位置: 代码迷 >> 综合 >> cb出现Process returned -1073741819 (0xC0000005)以及编译器的异常警告,Linux的段错误总结
  详细解决方案

cb出现Process returned -1073741819 (0xC0000005)以及编译器的异常警告,Linux的段错误总结

热度:87   发布时间:2024-02-01 09:13:57.0

一,对空指针的访问

在这里插入图片描述
再贴多一种类似情况,对指针解引用后,操作不属于自己的内存空间(0地址),0地址是不准许
访问的!!!
在这里插入图片描述

二,对只读空间的修改

一种情况是这样的,对只读空间进行修改,也是不允许的,一改就会出错!!!直接崩溃在这里插入图片描述
另外一种就是使用了strcpy强行改变了常量字符串的内容
这种就比较隐蔽了。。。单步调试是一种神器?

三,动态内存二次free/delete

我用C++写了链表类,然后将两个链表合并为1个,简单的将第一个链表的尾指针指向了第二个链表的头指针,然后
析构了第二个链表之后,又析构了第一个合并后的链表
,造成了非常隐蔽的double free,令我十分不解,
单步调试也发现不了问题,后来直接打印所有节点的地址,
恍然大悟!!!是二次free,简直了!!!
第一张图是有问题时的情况:
释放的内存地址0083E8A8被释放了2次,第一次释放是析构输出的第一行,第二次是析构输出的最后一行
在这里插入图片描述

第二张图解决了问题
在这里插入图片描述

四,free/delete了非动态内存

其他人讲的,具体我也没亲历过。。。

更具体的晚点更新。。。

  相关解决方案