深入理解malloc函数(c语言)

来源:互联网 发布:邦有道则知 邦无道则愚 编辑:程序博客网 时间:2024/05/22 14:08

看下面代码(来自vs2005)

 

 

根据代码,我们可以知道,malloc申请的空间不只是nSize大小,还有一个用来记录以申请空间信息的头,这样,总的大小就是blockSize = sizeof(_CrtMemBlockHeader) + nSize + nNoMansLandSize。这就解释了为什么free的时候只需要传入指针就行。

可以尝试一下代码:

 *(p-4)的值就是malloc时的size大小。