【无标题】

动态内存的申请和释放

malloc函数:

在C语言中,使用malloc函数来申请内存,函数原型如下:

malloc :
	#include <stdlib.h>
	void *malloc(size_t size);
	说明:	
		* 在堆中占用size个字节空间,返回该空间的地址
		* 该空间没有被初始化
		* 如果size为0,返回NULL或者可以被free的唯一地址值
	返回值:
		成功: 返回地址值
		失败: 返回NULL ,并设置 errno 
		size为0 有可能返回 NULL

calloc函数:

calloc 是一个用于分配内存空间并初始化为零的标准库函数,位于 <stdlib.h> 头文件中。它与 malloc 函数类似,但有一个额外的步骤:calloc 分配的内存会被初始化为零,而 malloc 分配的内存中的内容是未定义的(可能是随机值)。

	#include <stdlib.h>
	void *calloc(size_t nmemb, size_t size);	
	*说明:
		* 在堆中开辟 nmemb 个元素,每一个元素都是 size 字节,返回该空间的地址值
		* 该空间 清零
		* 如果 nmemb 或者 size 为0,返回NULL或者可以被free的唯一地址值
		
	*形参: 
		nmemb : 元素个数
		size  :每个元素的大小
		
	*返回值:	
		成功: 返回地址值
		失败: 返回NULL ,并设置 errno 
		如果 nmemb 或者 size 为0 有可能返回 NULL

realloc函数:

realloc 是一个用于重新分配内存空间的标准库函数,位于 <stdlib.h> 头文件中。使用 realloc,可以更改先前分配的内存块的大小,扩大或缩小内存块,并且可以选择保留或丢弃先前内存块中的内容。

	#include <stdlib.h>
	void *realloc(void *ptr, size_t size);
	*说明:
		* 将 ptr 里面的字节数 改变为 size (扩容 或者 缩容)
		* 原剩下的数据保持不变
		* 扩容的空间没有做初始化
		* 如果 ptr 是 NULL ,相当于 malloc(size) 
		* 如果 size 为 0 ,相当于 free 
		* 如果有足够空间扩容,则返回源地址 
		* 如果没有足够空间扩容,找到新的地方,返回新的地址,将原老地方数据拷贝过来,释放原地址空间
		
	*形参:
		ptr :原空间,一定是在堆中,由 malloc  calloc  realloc 占用的空间 
		size :新的空间大小
		
	*返回值:
		成功 : 返回旧地址 或者 新地址  
		失败 : 返回NULL , 并设置 errno 

free使用函数

free 是一个用于释放先前通过 malloc、calloc 或 realloc 函数分配的内存空间的标准库函数,位于 <stdlib.h> 头文件中。使用 free 函数可以将不再需要的内存返回给系统,以供其他部分使用。

	#include <stdlib.h>
	void free(void *ptr);
	*说明:
		* 释放空间
	*形参:
		ptr : 由 malloc  calloc  realloc 占用的空间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值