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...