c語言 陣列未知個數 怎麼宣告,C語言 陣列未知個數 怎麼宣告

時間 2021-08-16 14:07:02

1樓:風若遠去何人留

c語言在陣列個數未知的情況下,根據應用情況不同,有三種方式。

1,陣列元素總數未知,但是需要儲存的內容是已知的。

其實這是一種變相的已知個數,只是程式設計者不去計算總個數,把這個工作交給系統來做。這時可以通過陣列個數留空,顯式初始化陣列進行宣告。

比如char s = "this is a test string";

就是初始化了這樣乙個陣列s,其空間個數隱式的由初始化字串決定。

2,陣列元素總數未知,但最大規模已知。

比如不知道陣列的總個數,但是確定不會超過100個,那麼就可以定義乙個100個元素的陣列,供儲存呼叫。

3,動態分配陣列。

通過malloc函式,可以動態的分配陣列,然後記錄下當前分配的陣列元素個數,並使用該陣列。當陣列空間不足時,可以通過realloc函式,重新分配空間,擴大陣列元素個數。

比如int size = 100;

int *p = (int *)malloc(sizeof(int) * 100); // 初始化分配100個元素空間。用size儲存當前陣列規模。

p = realloc(sizeof(int)*(size + 100), p);//當空間不足時,增加100個元素。

size+=100;//需要注意的是,必須同步維護size的大小,否則會出錯。

2樓:匿名使用者

可以通過sizeof函式先求出陣列的長度,例如:

int a[50];

int len = sizeof(a)/sizeof(a[0]);

那麼len就是陣列的長度了

3樓:匿名使用者

用乙個在你要輸入的數的範圍之外的數來表示輸入結束.如果你要輸入的數遍及全部整數,那就只有讓使用者先輸入要寫入多少個數了.

宣告的話,既可以宣告乙個足夠大的陣列,也可以用乙個指標變數和乙個整型變數來實現動態陣列.

比如int *a,n;

scanf("%d",&n);

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

4樓:匿名使用者

c語言的陣列必須定義大小。不能企圖定義乙個a[n](n由使用者輸入)這樣的陣列。

我覺得可以用malloc()和free()。使用者輸入完畢後,再對這些數進行排序。

5樓:安訊網路

比如這樣:

printf("請輸入一些整數(最後乙個數字以#結束):\n");

int i=0,k;

for(k=i;k<=i;k++)

這時「i」就是最後輸入數字的下標(個數-1);

不過原來的陣列宣告時裡必須寫乙個整形常量,那是為了申請空間;

不過你排序的時候,只用最後乙個輸入資料的小標就可以了,那樣它們(那些0)就不會參加排序了~~~

^_^ ~~

c語言如何定義未知個數的陣列

6樓:夜風輕吹

用malloc函式。。。。

比如你要申請int型的未知個數陣列。可以以下程式#include

#include

main()

7樓:匿名使用者

#include

#include

void main()

for(i=0;i

for(i=0;i

}自己看先,可以查閱calloc函式用法。

8樓:匿名使用者

你可以定義乙個二維陣列嘛

這樣int n;

int array[n][20];

這樣這個二維陣列的每一行都是乙個一維陣列

9樓:匿名使用者

可以用new,

1.....new int[n][20];

2.for(int i=0;i

c語言中怎樣定義乙個未知長度的陣列??

10樓:金魚

除常量陣列外,陣列必須是定長的,如果不知道長度,有幾種辦法,固定分配乙個認為不會出現的維度值,或者對陣列進行動態分配,如:

int *parray,ncount;

int insert(int * parray,int ncount,int nelement)

main()

11樓:手機使用者

設定值等於null就行了 追問: 給個例子白?? 小弟 是自學的!

悟性低啦??謝謝!! 回答:

int a=null; 就是把 陣列 a的值設定為空。所以系統沒有為他分配記憶體,等你給陣列a賦值的時候 系統會自動給他分配相應的記憶體 追問: 我在手機上的搜尋貌似說的是用到 鍊表 和指標神魔的??

但是找不到啦!!麻煩您能幫忙給個例子不??謝謝!!

回答: 鍊表 指標 需要用這麼麻煩嗎。 我從沒這樣弄過。

你需要的是乙個未知長度的 陣列 ,所以不給這個陣列賦值就是最好的。 比如int a; 這就是申明乙個 陣列變數 a ,但沒給他賦值 所以他就沒有長度 追問: 哦 好吧!!

嘿嘿!!謝謝啦!!知道啦!!

回答: 速度選個滿意唄

c語言陣列宣告問題,C語言中定義陣列時對其全部初始化為1的問題

有初始化的陣列定義可以省略方括號中的陣列大小。例如,下面的 中陣列定義為5個元素 int a 如 char str program 編譯時必須知道陣列的大小。如果陣列大小要根據運 況來確定,可以使用動態陣列 int p int calloc num,sizeof int 一般有四種陣列定義方式,以一...

C語言中從廣西讀入未知長度的數字,放個陣列

include include int a 1000 int main 等下送乙個回來再幫你解答哈,應該不是很急吧 看過csdn的帖子過來的吧,你可以按照那上面說的實現。我自己設計了以個實現方法,採用動態陣列 char p int i,k cfile mfile mfile.open t d tas...

c語言的陣列中能不能包含未知數,關於c語言陣列的方括號中能不能使用變數的問題。

夏之夜 不行,你的x沒有定義,還有你的x是乙個變數你可以把它初始化為0,int a 2 2 這樣是將這個二維陣列初始化為0,你也可以這樣int a 2 2 scanf d a 1 1 for int i 0 i 2 i for int j 0 j 2 j 鹹樂心 現在我遇到這樣乙個問題,乙個6 6的...