c語言中如何給不確定大小的陣列定義並使用

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

1樓:匿名使用者

c語言中沒有明確的“動態陣列”(也就是不確定大小的陣列)這個概念,只能用動態記憶體分配來實現,我給你一個思路:

建立陣列——用動態分配分配一個指定大小的記憶體(陣列)銷燬陣列——釋放動態分配記憶體

訪問元素——通過記憶體指標間接引用

增加元素——再分配一塊新記憶體區域(大小為增加後的大小),把久區域的元素資料複製到新的記憶體區,銷燬舊的記憶體區域

減少元素——與增加元素類似

具體的實現方法建議你多參考一下關於函式malloc(記憶體分配函式)的使用介紹

其實真的很麻煩,如果實在完成不了的話就學c++吧,c++建立動態陣列比較方便

2樓:匿名使用者

在c語言中,如果不知道陣列的大小是無法直接定義陣列的,如果真想定義,可以用指標定義

3樓:匿名使用者

int *a;//宣告一個陣列

int n;

cin>>n; // 輸入一個變數n,當然也可以你的程式中的其它的任何整型變數

a=new int[n]; //用new關鍵字為a分配可存放n個int型資料的空間

4樓:匿名使用者

example:

int *array;

int n=10;

array=(int *)malloc(n*sizeof(int));

5樓:匿名使用者

用 malloc 間接實現

6樓:匿名使用者

樓上強人,不過不夠通俗簡單,定義一個足夠大的陣列是最主流的簡單

比如a[1000]

c語言中,如何定義大小不確定,由執行時確定大小的陣列

7樓:匿名使用者

#include

#include // malloc, freeint main()

free( p ); // 用完記得釋放

return 0;}

在c語言中,如何定義長度不確定的陣列

8樓:黯湮灬逍遙

char *p;

進去後在分配。

沒法宣告長度不定的陣列。

因為陣列由編譯器在進入main函式**段前分配好的。

9樓:匿名使用者

沒有這樣的陣列,可以用連結串列來實現

10樓:匿名使用者

char array = ;

11樓:匿名使用者

用動態申請,malloc

c語言如何實現不確定長度的陣列

12樓:

這個比較複雜了,需要用連結串列採用記憶體空間申請的方式,初學者暫時可以不要考慮這個了

c語言定義陣列但是陣列長度不確定怎麼處理

13樓:冬di快樂

假設陣列存的是int型 那麼 你先申請10個元素 int* a = (int*)malloc(sizeof(int)*10); 如果又來了個元素,版那麼你就可以權 a=(int *)realloc(a,11*sizeof(int)); 求元素個數int i,n=1; for(i = 0;(a+i)!=null;i++) n=i+1;//n就是元素個數

14樓:改笛馮昆卉

一般不是這樣定義的,我一般都是,先定義好陣列長度,如inta[100],就是先把陣列定義的比較大就可以了,然後再intn;

scanf("d%",&n);

inta[n];

c語言定義陣列但是陣列長度不確定怎麼辦

15樓:梨花濺雨心微涼

假設陣列存的是int型

那麼 你先申請10個元素

int* a = (int*)malloc(sizeof(int)*10);

如果又來了個元素,那麼你

就可回以

a=(int *)realloc(a,11*sizeof(int));

求元素個數int i,n=1;

for(i = 0;(a+i)!=null;i++)n=i+1;//n就是

答元素個數

在c語言中如何把陣列清空,在C語言中如何把陣列清空

一嘆 c語言貌似沒有把陣列清空的方法啊,或許你可以清除就把它賦值為0,這樣在形式上實現了清楚,不然的話只有動態申請的記憶體可以釋放。 沃英傑 int a 4 1 通過陣列遍歷,逐個賦值為0。定義迴圈變數int i for i 0 i 4 i a i 0 該程式功能為遍歷陣列a,逐個將元素賦值為0,實...

C語言中怎麼把一維陣列賦給另外一維陣列

勵光解芷容 不可以,之所以不可以是因為陣列名是個常量,它的值是陣列首元素地址,即不能將其它值付給這個常量。可以採用迴圈的方法逐個複製,或者採用另一個同型別的指標 相對於陣列名,指標是變數 指向要複製的陣列,之後就可以採用這個指標訪問之前的那個陣列 武冰業雁菡 void main int b 10 i...

c語言如何給動態分配的陣列賦值,C語言如何給動態分配的陣列賦值

那樣賦值也只能用可變參了.void set int value,int num,int b int malloc 3 sizeof int set b,3,4,5,6 set 設定變數,設定的數量,值1,值2. 1 當成普通陣列使用,用for迴圈即可賦值。2 例程 include include i...