如何在C中实现malloc和free?

Bru*_*uce 1 c memory-management

可能重复:
malloc()和free()如何工作?

我读到某处使用相同的指针参数自由调用两次导致未定义的行为.那么免费如何知道它必须释放多少内存?当我们调用malloc/calloc/realloc时,堆是否总是分配连续的内存?请提供相关文章/帖子/博客等的链接.

Dav*_*nan 5

如何mallocfree工作是实现定义.通常,有关内存块的信息将存储在下面的标题中ptr.但不一定.

关于伟大的事情malloc,并free是,你不需要知道他们是如何工作的.系统会为您处理细节.

我读到某处使用相同的指针参数自由调用两次导致未定义的行为.为了理解这一点,我必须首先知道免费是如何工作的?

我不确定我同意这个说法.您只需遵循该规则即可.

当我们调用malloc/calloc/realloc时,堆是否总是分配连续的内存?

如果你的意思是返回的内存块在地址空间中是连续的,那么是的就是这样.如果你的意思是连续的分配是顺序的,那么没有.