c 动态内存分配

C语言中提供的动态内存分配为了解决数组的静态的分配方式的问题:即数组大小必须在定义时指定,程序在运行时不能动态改变数组的大小 。

在标准库<stdlib.h>中提供了三个动态内存分配的函数供程序调用,下面将分别对这三个函数进行介绍:

1.  void *malloc(size_t size)

malloc 在分配一段连续的内存时,不会初始化该内存区并且返回指向该段内存区的首地址,当内存分配失败时返回NULL;通常我们在成功分配内存后在使用前要使用memset来初始化该内存区。

2.void * calloc(size_t n,size_t size)

该函数在动态存储区(堆)中分配n个长度为size的连续存储空间,并且对该段连续的内存空间初始化成0,如果分配失败则返回NULL,成功则返回指向首地址的空间。

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

该函数重新分配内存空间的大小,当ptr指向的区域空间足够时,则直接返回ptr的指针,若ptr指向的空间区域不够时,则新分配size个大小的空间,并将ptr指向的内存数据内容拷贝到新的空间,同时返回新的首地址,当ptr == NULL时,该函数相当于malloc。当size == 0时,则等同于free(ptr);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值