c語言 一維陣列如何增加長度

時間 2021-07-21 03:36:36

1樓:風若遠去何人留

c語言一維陣列分靜態一維陣列和動態一維陣列兩種。

一、靜態一維陣列,在定義的時候就已經確定其長度。如

int a[10];

就是定義了一個長度為10個元素的整型陣列。

靜態陣列不支援長度的增加。如果要增加長度,只能新定義一個更長的陣列,並把原始陣列的資料複製到新陣列中。

二、動態一維陣列,本質上是一個一維指標,並在其上分配一段記憶體,在這段記憶體上,可以當做陣列來使用。

這種情況下,可以通過realloc函式,來實現增加長度。

int *p; //定義指標

p = malloc(10*sizeof(int));//分配10個元素。

p = realloc(p,20*sizeof(int));//重新分配,長度增加到20. 使用該函式,可以保持原本空間內的資料不變,只是可用空間增加。

2樓:

無法增加長度,你可以定義一個新陣列,然後把舊的陣列資料複製到新陣列

3樓:

c語言一維陣列不能直接增加長度,但可以採用動態空間分配間接地實現此功能。

4樓:匿名使用者

不能增加長度,如果需要能增加長度的陣列,建議使用vector

5樓:四群小

用int *cam_gm = new int [i];來定義動態陣列

C語言中求二維陣列的一維陣列的長度有什麼函式

你要了解二維陣列其實是模擬一維陣列的,因為計算機的儲存機制是一維的.charstr 20 50 這樣其實是定義了20組一維陣列,其中每組又含有50個char型變數的陣列.你用strlen str 是不行的.這是求一個字串有多少個字元的.應該用sizeof str 這樣就可以求出一共有20 50 10...

c語言一維陣列求平均值,C語言一維陣列求平均值

小夏在深圳 c語言一維陣列求平均值的源 如下 include define n 10 typedef int type type sum type a,int n type s 0 int i for i 0 ia j temp a i a i a j a j temp int main 擴充套件資...

C語言二維陣列的排序問題,c語言二維陣列

不是。這麼說吧,陣列名本身就是指標,指向陣列的第一個元素。至於你所說的呼叫呼叫二級 二維吧 陣列,難道不是如普通變數般直接呼叫嗎?根據問題補充說,這是不允許的,main 函式的形參是固定的不能傳遞指標。而一般的自定義函式只能用傳遞首地址的形式來傳遞二維陣列,例子如下 定義 int a x y int...