Ⅰ 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()函數將內存塊釋放。函數返回的指針一定要適當對齊,使其可以用於任何數據對象。