时间:2021-05-20
堆空间的分配和释放
#include <stdlib.h>
malloc、calloc、realloc、free
malloc
void *malloc(size_t size);
功能:在堆中分配 size 字节的连续空间
参数:size_字节数
返回值:成功返回分配空间的首地址,失败返回 NULL
free
void free(void *ptr);
功能:释放由 malloc、calloc、realloc 分配的空间
参数:ptr_空间的首地址
返回值:无
注意:
1、每个空间只能释放一次
2、ptr 必须是分配空间的首地址
calloc
void *calloc(size_t nmemb, size_t size);
功能:在堆中分配 nmemb 块大小为 size 字节的连续空间
参数:nmemb_数据块数 size_每块大小
返回值:成功返回分配空间的首地址,失败返回 NULL
注意:calloc 会把空间内容置 0,而 malloc 不会
realloc
void *realloc(void *ptr, size_t size);
功能:在 malloc、calloc、realloc 分配的 ptr 开始空间,重新分配为 size 字节大小
参数:ptr_malloc、calloc、realloc 分配空间首地址 size_总大小
返回值:成功返回分配空间的首地址 失败返回 NULL
注意:
1、如果 size 小于原空间大小,不会起作用
2、新增加的空间不会置 0
3、如果 ptr 为 NULL,相当于 malloc(size)
4、如果 ptr 不为 NULL 并且 size == 0,相当于 free(ptr)
5、ptr 不需要释放,如果分配成功,只释放重新分配空间的首地址
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言C语言返回字符串函数共有四种方式,分别如下:使用堆空间,返回申请的堆地址,注意释放函数参数传递指针,返回该指针返回函数内定义的静态变量(共享)返回全局变量下
C语言中枚举与指针的实例详解总结一下,定义枚举,用typedefenum关键字,比如typedefenum{Red,Green,Blue}Color3;枚举到数
C语言中调用Swift函数实例详解在Apple官方的《UsingSwiftwithCocoaandObjectgive-C》一书中详细地介绍了如何在Object
详解C语言用malloc函数申请二维动态数组的实例C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单。Sampleone#includ
C语言free()函数:释放动态分配的内存空间头文件:#includefree()函数用来释放动态分配的内存空间,其原型为:voidfree(void*ptr)