动态分配内存malloc和calloc

本文介绍了C语言中动态内存分配的两个关键函数——malloc和calloc。malloc函数根据传入的大小参数分配内存,而calloc则需要元素数量和每个元素大小,两者返回分配内存的起始指针。此外,还提及了realloc函数用于已分配内存的大小调整。

malloc()函数有一个参数,即要分配的内存空间的大小:
void *malloc(size_t size);

calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小:
void *calloc(size_t numElements,size_t sizeOfElement);

如果调用成功,函数malloc()和calloc()都将返回所分配的内存空间的首地址。

realloc()对malloc分配的内存进行大小调整:
extern void *realloc(void *mem_address, unsigned int newsize);

int *p1, *p2;
p1 = (int *)malloc(sizeof(int)*20); //相当于int a[20];
p2 = (int *)calloc(20, sizeof(int));    //同上,但是自动初始化所有值
p1[0] = 1;                          //可直接进行下标操作
p1 = (int *)realloc(p1, sizeof(int)*40);
/*先判断当前指针是否有足够空间,如果足够就扩大并返回原有指针,
否则申请新的空间,复制数据,释放原有空间,返回新地址。*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值