0
点赞
收藏
分享

微信扫一扫

c++的四种崩溃-因为越界使用了堆内存

大沈投资笔记 2022-01-13 阅读 54

最近遇上了C++的各种崩溃,提示如下:

corrupted double-linked list

2022-01-13 14:46:23 DEBUG [26898:0x75678000:porting_freeDev:6756] free dev->AIs.devAIs=0x9171440
*** Error in `./Proj': corrupted double-linked list: 0x07d6d392 ***

Segmentation fault

2022-01-13 15:00:25 DEBUG [845:0x755f9000:porting_freeDev:6756] free dev->AIs.devAIs=0x9da3c20
Segmentation fault

invalid next size (normal)

2022-01-13 13:55:21 DEBUG [25693:0x755ce000:porting_freeDev:6756] free dev->AIs.devAIs=0x8fba0e0
*** Error in `./Proj': free(): invalid next size (normal): 0x08fba0e0 ***

double free or corruption (!prev)

2022-01-12 18:12:31 DEBUG [4927:0x75668000:porting_freeDev:6756] free dev->AIs.devAIs=0x95de8b0
*** Error in `./Proj': double free or corruption (!prev): 0x095de8b0 ***
Aborted

这些错误,有让人不知所措,然而,通过,这次的测试研究,发现,其是一个错误引起的,访问了非法的内存,就是这么一个错误,就导致了上面的各种不同的提示,为什么不同的提示,每次运行,提示错误,都可能是其中的一个,原因应该是非法访问的内存地址不同,导致了上面不同的错误,比如访问了一个已经释放的地址,就会提示double free,

综合来说:都是因为内存越界使用。

专业的解释如下:

举报

相关推荐

0 条评论