當前位置:首頁 » 編程語言 » c語言數組空間大小多少合適
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言數組空間大小多少合適

發布時間: 2022-04-15 18:47:28

c語言里數組的最大長度是多少

與機器條件、內存空間以及程序運行所用空間和編譯器有關。好點的機器 1000000是能到的。

我的電腦是98年的,只能到100000

Ⅱ C語言對數組長度有沒有限制

數組是靜態分配的空間,應該是在棧上,數組你想分配100萬個元素的話,如果是char數組,佔用的空間就是1M,如果這個值超過了允許的棧空間大小,肯定會出錯的。
棧空間視不同的機器不同,至於具體是在編譯環境中設置還是在操作系統中設置,我就不知道了。
另外,最好不要用這么大的數組,遍歷、修改操作都不方便,性能太低。

Ⅲ c語言中最大可以申明多大的數組

由於數組申請的是連續存儲空間,
所以存在最大申請的限制,也就是說最大申請空間不能大於當前的棧空間
棧空間是可調的,默認的應該為1M,
但是最大值也不會大於全部棧的總size

如果是動態申請的話(例如,動態數組,鏈表等),則和堆的大小有關系

Ⅳ C語言的數組最大可以定義多長,求高手解答,請不要很籠統說是系統內存什麼的還是硬體限制,麻煩詳細解釋一

數組只是一個語法概念,可以認為你是要分配一段連續的內存,在應用層有2種方式:

  1. 全局變數的方式,在函數外聲明,最大應該不能超過4GByte(32bit定址最大值),int就除與4,doubel再除2

  2. 局部變數的方式,在函數內聲明,屬於棧內存,就更小,確實跟操作系統和C庫相關,進程都有棧限制的,可以輸入命令ulimit查看,默認也就10K左右,當然你可以設置更大。


不會有數專門說這個數組大小的問題,它涉及的知識點會,棧內存,data段,以這些為關鍵字去看,整理理解吧。

Ⅳ C語言關於數組空間大小的問題

是這樣的:定義char a[1]的時候,計算機給這個數組分配了存放空間,這個空間的首地址為a,空間大小為僅僅能存放一個字元的空間。但是為什麼你輸入很多字元,然後運行,仍然能正確輸出呢?問題在於a是一個首地址,c默認是你知道你要操作的對象是多長的。如果你把3個字元「xyz」強行送給地址a,那麼,他就把x存放在a的位置,y存放在a+1的位置,z存放在a+2的位置,依次向後遞增,這就是指針。

由於你輸入的字元串並不是很長,相對於現在計算機的內存,微不足道,所以沒有發生溢出的錯誤,程序就不報錯。如果你輸入很長的字元串,恰巧到了a+n,而a+n正在被其他進程使用,那麼就慘了,計算機可能提示你溢出了,或者內存非法使用了。此時應該定義足夠長的數組,比如char a[1000],使計算機一開始就給你分配足夠的內存,問題就不會再出現了。

但願能幫到你噢~~~

Ⅵ 關於C語言中定義數組大小的問題(最多能定義多少)

查了一下,這個錯誤是棧溢出。 棧的大小是比較有限的, 不能定義這樣大的東西

需要一個大的數組的話應該定義一個指針,然後用malloc分配內存空間給他,這個是在堆上分配的,可以分配很多

Ⅶ c語言數組的大小問題

先用循環統計的方式獲得數量(作為數組長度),然後賦值給一個const常量,最後用這個常量作為數組長度即可。
如果無法估計需要的最大長度,可以直接把數組長度定義得盡可能地長,多餘的部分就不用了就行了。

如果說你要的是不定長的數組(動態數組)的話,還是用集合(或者叫容器)來替代數組(靜態數組)比較好。(如STL中的容器vector就可以實現,另外字元串可以使用String類類型,但這些必須在C++裡面做)

Ⅷ C語言定義數組一定要指定大小嗎

是的,c中數組定義時要指定大小。

當然,萬事也不是絕對的。例如:1.作為形參的時候,可以不指定,因為在函數調用的時候,數組會轉為指針的。2.當為字元串數組時,char ST[]="hello word"這兒定義了一個ST字元數值,不需要你自己去指定大小,系統會自動生成長度為11.

Ⅸ C語言中如何計算一個數組占內存多少空間

如果一個數組的長度是n(即有n個元素),元素的類型是XXX,則n*sizeof(XXX)就是這個數組所佔內存空間的位元組數。

Ⅹ C語言中如何計算一個數組占內存多少空間

C語言中數組的sizeof值等於數組所佔用的內存位元組數。

C語言中有一個專門用於檢測類型或變數或數組在內存中所佔有的空間(位元組數)的操作符sizeof,用sizeof可以直接檢測出數組在內存佔有的位元組數。

語法規則是:sizeof(x); (識別沒有歧義時也可寫成sizeof x;)——其中x是類型名、變數名或數組名等,返回x所佔位元組數(int型)。

(10)c語言數組空間大小多少合適擴展閱讀:

sizeof的使用規則:

1、基本數據類型的sizeof:

這里的基本數據類型指short、int、long、float、double這樣的簡單內置數據類型,由於它們都是和系統相關的,所以在不同的系統下取值可能不同,這務必引起我們的注意,盡量不要在這方面給自己程序的移植造成麻煩。一般的,在32位編譯環境中,sizeof(int)的取值為4。

2、指針變數的sizeof:

指針變數的sizeof值與指針所指的對象沒有任何關系,正是由於所有的指針變數所佔內存大小相等,所以MFC消息處理函數使用兩個參數WPARAM、LPARAM就能傳遞各種復雜的消息結構(使用指向結構體的指針)。