C动态内存分配和管理函数malloc,calloc,free与realloc

目录

 介绍

1.void* malloc(size_t size);

2.void* calloc(size_t num, size_t size);

3.void* realloc(void* ptr, size_t size);

4.void free(void* ptr);

5.代码演示


 介绍

在 C 语言中,malloccallocrealloc 和 free 是用于动态内存分配和管理的标准库函数。它们定义在 <stdlib.h> 头文件中。

1.void* malloc(size_t size);

size: 要分配的字节数。

malloc 函数用于分配指定字节数的内存块,并返回指向该内存块的指针。分配的内存内容是未初始化的。回一个 void* 指针,指向分配的内存块。如果分配失败,返回 NULL

2.void* calloc(size_t num, size_t size);

num: 要分配的对象数量,size: 每个对象的字节数。

calloc 函数用于分配一块内存,用于存储指定数量的对象,每个对象的大小为指定字节数。分配的内存块会被初始化为零。返回一个 void* 指针,指向分配的内存块。如果分配失败,返回 NULL。

3.void* realloc(void* ptr, size_t size);

ptr: 指向已分配内存块的指针,size: 新的内存块大小(以字节为单位)

realloc 函数用于重新调整已分配内存块的大小。如果需要增加或减少内存块的大小,realloc 可以用来改变内存块的大小,保留原有数据(如果有的话)。返回一个 void* 指针,指向新分配的内存块。如果分配失败,返回 NULL,并且原内存块未被修改。

4.void free(void* ptr);

ptr: 指向要释放的内存块的指针。

free 函数用于释放先前由 malloccalloc 或 realloc 分配的内存块。释放内存块后,该内存块变为不可用,且无法再次访问无返回值。

5.代码演示

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int* ssr=(int *)malloc(40);//分配40个字节的空间 
	int* sr=(int *)calloc(5,sizeof(int));//分配5个int(4个字节)所占空间,并都赋值为0 
	int* r=(int*)realloc(ssr,30);//修改ssr所指向的空间并修改大小为30个字节,并返回新的内存地址给r
	ssr=r; 
	free(ssr);//释放空间 
	free(sr);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值