當前位置:首頁 » 編程語言 » c語言數組個數

c語言數組個數

發布時間: 2025-02-25 14:24:26

c語言 結構體數組的個數如何自己定義

C99標准出來以前,C語言不支持動態定義數組大小,只能採用動態分配指針方式來完成動態數組的個數定義。如:

structst{
intx,y;
charstr[10];
};
structst*array;
intn;
printf("inputn:");scanf("%d",&n);
array=(structst*)malloc(n*sizeof(structst));//動態分配n個結構體空間,接下來array的操作,與數組操作是相同的,如:array[0].x=1;

C99以後,C語言標准開始支持動態定義數組,但動態數組,在其確定個數之後,在其生命期中,就不可變了。如:

structst{
intx,y;
charstr[10];
};
intn;
printf("inputn:");scanf("%d",&n);
structstarray[n];//定義動態數組
array[0].x=1;

② C語言中一維數組的最長維數是多少謝謝!

ANSI C89標准中規定,一個數組的尺寸(下標)必須是一個整型常量培槐表達式以便於在編譯時計算大小,而這里的所謂常量(或者常量表達式的運算結果),一般是指unsigned int。

16位編譯器(比如Turbo C)中,unsigned int為16位,因此數組最多32767個數據。

32位編譯器(比如Visual C++ 6.0)中,unsigned int為32位,因此數組最多4294967295個數據。

以上結論為理論值。

實際上,在VC++中,我們定義一個259025元素的整型數組,雖然可以編譯通過,但是我們仍將得到一個運行時錯誤(runtime error)。這主要跟堆和棧的大小有關,詳細情況請查閱操作系統相關資料。

錯誤代碼好中裂範例:友閉

// VC++ 6.0 中
void main()
{
int a[259025]; // 運行時錯誤,259024是ok的。
char b[259025]; // ok。
char c[1036097]; // 運行時錯誤,1036096是ok的。
}

// TC2.0 中
void main()
{
int a[32768]; // 編譯錯誤,32767是ok的。
char b[65536]; // 編譯錯誤,65535是ok的。
}

③ c語言如何取數組元素個數

不能判斷,因為C沒有提供判斷數組元素個數的功能。由於C不檢查數組的邊界,所以必須事先知道元素個數、所佔位元組數和元素類型三個要素中的兩個才能確定另外一個,否則是無法判斷的。比如有知道數組a[]佔40個位元組,又知道a[]是int型數組,那麼元素個數就是40/sizeof(int)。其中sizeof(int)是用操作符sizeof來求得一個int類型所佔位元組數。

熱點內容
在線直播伺服器搭建 發布:2025-02-25 16:50:48 瀏覽:430
和平精英改性別為什麼變安卓 發布:2025-02-25 16:47:27 瀏覽:151
一夢江湖安卓版怎麼用ios玩 發布:2025-02-25 16:44:11 瀏覽:27
四川哪裡託管伺服器好雲主機 發布:2025-02-25 16:44:00 瀏覽:3
運演算法則加法 發布:2025-02-25 16:32:25 瀏覽:134
pb編程現狀 發布:2025-02-25 16:20:40 瀏覽:328
江西師范大學伺服器地址 發布:2025-02-25 16:20:34 瀏覽:657
androidactivity標題 發布:2025-02-25 16:19:22 瀏覽:831
ubuntu配置python環境 發布:2025-02-25 16:18:30 瀏覽:748
linuxaes 發布:2025-02-25 16:09:36 瀏覽:469