源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C语言中堆空间的生成与释放详解

  • 时间:2022-05-30 18:15 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C语言中堆空间的生成与释放详解
[b]堆空间的分配和释放 [/b] #include <stdlib.h>  malloc、calloc、realloc、free  malloc  void *malloc(size_t size);  功能:在堆中分配 size 字节的连续空间  参数:size_字节数  返回值:成功返回分配空间的首地址,失败返回 NULL    [b]free [/b] void free(void *ptr);  功能:释放由 malloc、calloc、realloc 分配的空间  参数:ptr_空间的首地址  返回值:无  [b]注意: [/b] 1、每个空间只能释放一次  2、ptr 必须是分配空间的首地址  [b]calloc [/b] void *calloc(size_t nmemb, size_t size);  功能:在堆中分配 nmemb 块大小为 size 字节的连续空间  参数:nmemb_数据块数 size_每块大小  返回值:成功返回分配空间的首地址,失败返回 NULL  [b]注意:[/b]calloc 会把空间内容置 0,而 malloc 不会  [b]realloc [/b] void *realloc(void *ptr, size_t size);  功能:在 malloc、calloc、realloc 分配的 ptr 开始空间,重新分配为 size 字节大小  参数:ptr_malloc、calloc、realloc 分配空间首地址 size_总大小  返回值:成功返回分配空间的首地址 失败返回 NULL    [b]注意: [/b] 1、如果 size 小于原空间大小,不会起作用  2、新增加的空间不会置 0  3、如果 ptr 为 NULL,相当于 malloc(size)  4、如果 ptr 不为 NULL 并且 size == 0,相当于 free(ptr)  5、ptr 不需要释放,如果分配成功,只释放重新分配空间的首地址
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部