69,382
社区成员
发帖
与我相关
我的任务
分享
如果我没有记错的话,malloc分配完内存,其实实际分配的内存比用户分配的内存要多几个字节,这个用来存放free结束符的,通知对应free到这个字节的时候就结束free,如果破坏了这个预留字节的话,就有可能释放了所有的堆空间的,
貌似sbrk没有这个功能的吧!
void *sbrk(intptr_t increment);
increment 为正数则是 分配内存, 为负数则是释放内存!
而且 sbrk 一般和 brk 成对使用
sbrk负责分配内存,brk负责释放内存!