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

一,对空指针的访问

cb出现Process returned -1073741819 (0xC0000005)以及编译器的异常警告,Linux的段错误总结
再贴多一种类似情况,对指针解引用后,操作不属于自己的内存空间(0地址),0地址是不准许
访问的!!!
cb出现Process returned -1073741819 (0xC0000005)以及编译器的异常警告,Linux的段错误总结

二,对只读空间的修改

一种情况是这样的,对只读空间进行修改,也是不允许的,一改就会出错!!!直接崩溃cb出现Process returned -1073741819 (0xC0000005)以及编译器的异常警告,Linux的段错误总结
另外一种就是使用了strcpy强行改变了常量字符串的内容
这种就比较隐蔽了。。。单步调试是一种神器????

三,动态内存二次free/delete

我用C++写了链表类,然后将两个链表合并为1个,简单的将第2个链表的尾指针指向了第1个链表的头指针,然后
析构了第二个链表之后,又析构了第一个合并后的链表
,造成了非常隐蔽的double free,令我十分不解,
单步调试也发现不了问题,后来直接打印所有节点的地址,
恍然大悟!!!是二次free,简直了!!!
第一张图是有问题时的情况:
释放的内存地址0083E8A8被释放了2次,第一次释放是析构输出的第一行,第二次是析构输出的最后一行
cb出现Process returned -1073741819 (0xC0000005)以及编译器的异常警告,Linux的段错误总结

第二张图解决了问题
cb出现Process returned -1073741819 (0xC0000005)以及编译器的异常警告,Linux的段错误总结

四,free/delete了非动态内存

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

更具体的晚点更新。。。