首页 新闻 会员 周边

关于linux出现segment fault错误

0
[已解决问题] 解决于 2020-01-13 17:49

代码是关于用C语言自己实现一个动态内存分配器,逻辑上应该是对的,但是运行时出现segment fault错误。
定位到了错误的地方,但是不明白为什么无法访存。
find_fit函数参数表原本是没有p的,为了找出原因我从上一层调用函数的地方把我想要访问的指针p传了过来,通过p是可以访问的,但是在当前函数中我使用tmpP指针却又无法访问,输出信息如图片所示,p与tmpP输出地址是一样的,HDRP(p)与HDRP(tmpP)输出也一样,GET_SIZE(HDRP(p))可以访问到内存,但是换成GET_SIZE(HDRP(tmpP))会显示segment fault错误。


有没有大神指点一下,实在调不出来了/(ㄒoㄒ)/~~

东寻的主页 东寻 | 菜鸟二级 | 园豆:204
提问于:2019-11-10 16:21
< >
分享
最佳答案
0

应该是Linux有某些保护机制没有关闭

东寻 | 菜鸟二级 |园豆:204 | 2020-01-13 17:49
其他回答(1)
0

这段代码看起来没啥问题,... 这些是哪里打印的? 估计原因在这,你单步跟踪下,看出错的地方

2012 | 园豆:21230 (高人七级) | 2019-11-12 08:19

...是我自己打印的,出错的地方是红色框注释掉的那一行,之前提问的图有点不准确,下面是两种代码的运行结果。



支持(0) 反对(0) 东寻 | 园豆:204 (菜鸟二级) | 2019-11-12 17:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册