c语言函数申请内存,c中动态内存申请的函数

C语言中,内存管理是通过专门的函数来实现的。

(1)malloc函数:

用于分配若干字节的内存空间,并返回一个指向该内存空间首地址的指针变量。

若系统不能提供足够的内存单元,将会返回一个NULL,空指针NULL意味着它不指向任何对象,使用空指针将会使系统崩溃。

原型:void *malloc(unsigned int

size)

(该函数返回的指针变量无类型)

(向系统申请的空间大小,申请成功将返回void型指针)

Eg:int *p;

p = (int

*)malloc(sizeof(int));

(2)calloc()函数:

用于给若干同类型的数据分配连续的存储空间并将内存初始化为0,返回一个指向该连续存储空间首地址的指针变量

函数原型:void *calloc(unsigned int

num,unsigned int size);此时,相当于建立了一个一维动态数组

(num即向系统申请的

内存空间的数量) (size即申请的每个空间的字节数)

float *p;

p = (float

*)calloc(10,sizeof(float)) || p = (float

*)malloc(10*sizeof(float));

(3)free()函数

释放向系统动态申请的由指针p指向的存储空间

原型:void free(void *p)

(4)realloc()函数

用于改变原来分配的存储空间大小

原型:void *realloc(void *p,unsigned int

size);

将指针p所指向的存储空间大小改为size个字节,函数返回值是新分配的存储空间首地址,与原来的首地址不一定相同。

由于动态内存分配得到的存储单元是无名的,只能通过用指针变量来引用它,

所以,一旦改变了指针指向,原来分配的内存及数据就会丢失,所以不要随便改变指针变量的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值