微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C语言中的fee()函数工作如何?

当我们调用内存管理函数(malloc、calloc 或 realloc)时,这些函数会保留额外的字节用于簿记。
每当调用 free() 函数并传递指向已分配内存的指针时,free()函数都会获取簿记信息并释放分配的内存。 无论如何,如果程序更改指向已分配地址的指针的值,则调用 free()函数会给出未定义的结果。

 ____ The allocated block ____
/                             \
+--------+--------------------+
| Header | Your data area ... |
+--------+--------------------+
         ^
         |
       +-- Returned Address

示例代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char *pcBuffer = NULL;
    pcBuffer  =  malloc(sizeof(char) *  16); //Allocate the memory
    pcBuffer++; //Increment the pointer
    free(pcBuffer); //Call free function to release the allocated memory
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐