动态数组长度的扩张和缩小

本文探讨了动态数组如何在运行时通过realloc函数进行长度的扩展和收缩。realloc函数允许改变已分配内存区域的大小,其原型接受一个指向动态内存的指针和新的长度。虽然可以增大或减小长度,但缩小可能导致数据丢失。当扩展时,原有的数据将被保留,新分配的内存单元追加到原有内存后面。
摘要由CSDN通过智能技术生成

动态数组的长度可以在函数运行的过程中动态的扩充和缩小,怎么扩充和缩小?用realloc函数。realloc函数也是系统提供函数,他是英文单词realloc的缩写,即“重新分配”的分配的意思。该函数的原型:

#include<stdlib.h>
void *realloc(void *p, unsigned long size);

其中指针变量 p 是指向“要改变内存大小的动态内存的”指针变量。指针变量 p 是 void *型的,表示可以改变任何基类型的,指向动态的指针变量。第二个参数size是重新指定的“新的长度”。
“新的长度”可大可小,但是要注意,如果“新的长度”小于原内存的大小,可能会导致数据丢失,慎用!如果是扩充的话,原有数据仍然被保留着,仅仅在已有的内存基础上进行扩充。如果现在是 5 字节,扩充到 7 字节,那么原来的 5 个内存单元不动,里面的数据也不会改变,只在原来的基础上增加 2 个内存单元。

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
	int cnt1, cnt2;
	int *p;
	int i;
	printf("请输入你要存放的元素个数");
	scanf("%d", &cnt1);
	p = malloc(sizeof(int) * cn
博客
v8worker
05-08 2892
05-06 2871
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值