关于linux出现segment fault错误

2020-01-13 16:52发布

代码是关于用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ㄒ)/~~

标签:
2条回答
仙女界的扛把子
2楼-- · 2020-01-13 17:44

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

查看更多
我命由我不由天
3楼-- · 2020-01-13 17:45

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

查看更多
登录 后发表回答