代码是关于用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ㄒ)/~~
应该是Linux有某些保护机制没有关闭
这段代码看起来没啥问题,... 这些是哪里打印的? 估计原因在这,你单步跟踪下,看出错的地方
...是我自己打印的,出错的地方是红色框注释掉的那一行,之前提问的图有点不准确,下面是两种代码的运行结果。