调用printf后sbrk(0)值增加

时间:2016-09-27 23:34:02

标签: c gcc malloc

我正在尝试编写自己的malloc实现,遵循在线课程。我面临的问题是我总是遇到分段错误,当我尝试调试时总是指向printf语句,这只是一个字符串。经过进一步调查后,我发现在调用printf后,sbrk(0)的值总是会增加。

我不确定,但我认为我的malloc实现会覆盖printf可能正在使用的一些内存空间。但是printf是否有可能存在。

没有printf时,程序运行正常。

我正在使用sbrk(size)来增加堆的大小。

EG。在调用printf之前的堆是0x604000到0x605000并在调用它之后是0x604000到0x626000

0 个答案:

没有答案