Ⅰ c语言中数组动态增长有哪些方法
可以,但不能是静态数组如int a[50];左边分配在堆栈上,(分配在堆栈上的变量)不能在编译时不知道分多少空间,并且分了多少空间就是多少。
如果想让数组大小动态分配,可以使用下面做法,记得用完要free:
int*a=(int*)malloc(n*sizeof(int));//n是数组的大小。
或者这样calloc函数的一个好处就是分配完内存区域后会自动把该区域清零,所以特别适合数组:
int*a=(int*)calloc(n,sizeof(int));//n是数组的大小。
延长数组大小的话这样做:
a=(int*)realloc(a,m*sizeof(int));//m新数组的大小。并且,原来malloc或者calloc的内存区域会自动被free掉,不用你操心。
Ⅱ C语言怎么对数组进行添加
int b=1;
int c=0;
int *a=new int[b];
for(int i=b;i<=b;)
{
cin>>a[i];
cout<<"继续按1"
cin>>c;
if(c) {b++;int *a=new int[b];}
else break;
}
Ⅲ C语言中新增一个数组元素
main()
{int i,n,m;
int a[8]={1,2,3,4,5,6,7,8};/*可以自己定义的,这里为正迹了方便*/
printf("\nthe original array a:");
for(i=0;i<8;i++)
printf("%-3d",a[i]);
printf("\n");
printf("\nplease enter whick number you want added n(0~8):");/*输入要宽凳加入的下标n,从0~8之间慎清旅*/
scanf("%d",&n);
for(i=8;i>n;i--)
a[i]=a[i-1];
printf("\Enter the number you added m:");
scanf("%d",&m);
a[n]=m;
printf("now,the array a:");
for(i=0;i<9;i++)
printf("%-2d",a[i]);
printf("\n");
}
Ⅳ c语言中怎样用代码添加数组成员数
C语言的数组有动态数组和静态数组两种。
1 静态数组。
对于静态数组,无法新增加数组成员数量。
所以一定要最初始定义足够大的数组,然后可以用一个整型变量维护数组中现有成员个数,再动态增加实际成员个数。
比如
inta[1000];
intn=0;
while(scanf("%d",&a[n])!=EOF)n++;
这样的代码就可以实现增加数组成员数的类似效果。n为实际成员个数。
2 动态数组。
动态数组是可以随时改变数组成员个数的。不过为了确定当前数组个数,需要用两个整型变量来保存最大成员数,和已有成员数,这样就可以在不够的时候进行扩大。
intn=0,size=100;//n为当前元素个数,size为数组大小,初始为100.
int*a=NULL;//数组指针。
a=(int*)malloc(sizeof(int)*size);//初始分配100个元素。
while(scanf("%d",&a[n])!=EOF)
{
n++;
if(n>=size)//空间不足。
{
size+=100;//增加100个元素空间。
a=(int*)realloc(sizeof(int)*size,a);//重新分配空间。
}
}
Ⅳ c语言动态数组如何扩充空间
c语言动态数组扩充空间,主要是利用动态存储分配库函数来实现的,常用的有malloc函数和calloc函数。
malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。
例如:
char *x;
x = (char *)malloc(10); //x就指向了包含10个字符单元的存储空间。
(5)c语言怎么扩充原数组扩展阅读:
函数定义
其函数原型为void *malloc(unsigned int size);其作用是在内存的动态存储区中分配一个长度为size的连续空间。此函数的返回值是分配区域的起始地址,或者说,此函数是一个指针型函数,返回的指针指向该分配域的开头位置。
如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。