用c語言如何定義較大的二維陣列例如1000行

2021-12-23 15:09:10 字數 742 閱讀 2261

1樓:匿名使用者

void main()

這樣定義沒有問題

array size too large (陣列太大)分析:定義的陣列太大,超過了可用記憶體空間。

可能是你的可用記憶體空間太小

2樓:小小缺

用int定義所佔空間較大,如用unsigned char定義空間會節約很多,不過還是不能滿足1000行1000列的要求,微控制器內的資料儲存單元是有限的,程式設計不僅僅是軟體的事,也要了解所有微控制器的內部結構與硬體資源,軟硬結合才能更快進步,希望能對你學習c有所幫助。

3樓:匿名使用者

簡單來說,直接定義就可以了。比如int a[1000][1000];

但是如果你的陣列非常非常大,那就需要考慮棧記憶體問題了。因為直接定義的陣列是存放在當前執行緒棧空間的。一般執行緒棧空間都會有預設值(可能有1mb到10mb不等),具體取決於作業系統的預設分配策略。

也可以通過建立執行緒的時候自己設定。

更合適的方式是用動態分配記憶體,c語言中對應的是malloc函式。動態空間是在堆(heap)上分配的,可以使用的記憶體一般都會很大。動態分配二維陣列可以參考:

4樓:匿名使用者

如果是在微控制器的話, 你根本就不可能建立這種二維陣列。

即使在pc端也不建議建立這麼大的陣列。

C語言中關於二維陣列的問題,c語言關於定義二維陣列的問題

float a 5 是定義了一個指向陣列的指標,如果要把它當成二維陣列的話,相當於列數為5,行數可以動態分配。如 float a 5 int n 2 定義行數為2 a new float n 5 int sum 0 for int i 0 i 對於你定義的這個陣列,它表示有5個float 型別的指標...

c二維陣列傳遞問題,C語言怎麼以二維陣列作為引數傳遞的問題

你這裡nn裡面確實是二維陣列,char al 10 是說al是一個一維維度為10的二維陣列指標變數。因此和你的ne陣列是對應的,傳參是沒問題的。錯誤在於 1.你的函式呼叫有問題 nn ne 2.你給陣列賦值,al 0 asd 這種使用,是僅在陣列初始化的時候被允許的。如果要實現這個字串放到陣列,可以...

關於c語言二維陣列輸出問題,C語言程式設計二維陣列輸出一個23的矩陣

二維bai陣列是由一維陣列構成的,迴圈第du一維輸出zhi就可以了 include stdio.h int main int argc,char argv int i for i 0 i 7 puts s i return 0 執行結果 版空的那一行就是那個權空字串的輸出結果。c語言程式設計 二維陣...