1樓:知道新使用者
陣列太大了,看看下面
一個由 c/c++ 編譯的程式佔用的記憶體分為以下幾個部分:
1 、棧區( stack )— 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。
2 、堆區( heap )— 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由 os **。注意它與資料結構中的堆是兩回事,分配方式倒是類似於連結串列
3 、全域性區(靜態區)( static )— 全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域,未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。程式結束後由有系統釋放。
4 、文字常量區 — 常量字串就是放在這裡的。程式結束後由系統釋放。
5 、程式**區 — 存放函式體的二進位制**。
棧:在 windows 下,棧是向低地址擴充套件的資料結構,是一塊連續的記憶體的區域。這句話的意思是棧頂的地址和棧的最大容量是系統預先規定好的,在 windows 下,棧的大小是 2m (也有的說是 1m ,總之是一個編譯時就確定的常數),如果申請的空間超過棧的剩餘空間時,將提示 overflow 。
因此,能從棧獲得的空間較小。
堆:堆是向高地址擴充套件的資料結構,是不連續的記憶體區域。這是由於系統是用連結串列來儲存的空閒記憶體地址的,自然是不連續的,而連結串列的遍歷方向是由低地址向高地址。
堆的大小受限於計算機系統中有效的虛擬記憶體。由此可見,堆獲得的空間比較靈活,也比較大。
2樓:
區域性變數的上限和下限是-32767~32767,你搞個5萬多怎麼行呢?想要執行該成全域性變數就ok了:
#include
const long n = 51808;
char a[n][20];
int main()
這就對了,要在外部定義哦
3樓:匿名使用者
典型的溢位錯誤,真是拿記憶體當硬碟用!你定義的陣列太大了,記憶體中沒有那麼大的一塊連續空間!減1之後剛好夠。
4樓:匿名使用者
棧溢位。。
陣列太大了
減一的話,剛剛夠用
下面這個c++程式怎麼把結果存到一個二維陣列中?? 20
5樓:暗窺六道
我有個想法, 既然是c++, 為何不用multimap?
c++中,怎樣用函式輸入一個二維陣列,急急!
編寫c++程式求二維陣列的鞍點
6樓:匿名使用者
#include
#include
int main()
}min=a[0][k];
int m=0;
for (j=1;j<5;j++)
}if (m==i)
cout<<"鞍點:"<
else cout<
}return 0;} 程式設計實現二維陣列的轉置.c++程式 7樓:匿名使用者 lt; 首先你要了解 在一維陣列中: *a表示第一個值, a+1表示第二個值的指標, *(a+1)表示第二個值的值 ***********************************==== 二維陣列屬於高階指標也就是**p 在*(*(a+i)+j)中: *(a+i)在二維陣列中,是一個指標哦,不是值!! *(*(a+0)+0)表示第一個值, *(a+0)+1表示第一組的,第二個值的指標*(*(a+0)+1)表示第一組的,第二個值的值*(*(a+1)+1)表示第二組的,第二個值的值另外,團idc網上有許多產品**,便宜有口碑 8樓:牽著你的手 #include #include using namespace std; const int i=5; int main() cout< }cout<<"轉置後的矩陣為:"< for(i=0;i
}for(i=0;i
cout< }return 0;} 9樓:雙精度單精度 給你個例子吧 #include #include using namespace std; const int i=5; int main() cout< }cout<<"轉置後的矩陣為:"< for(i=0;i
}for(i=0;i
cout< }return 0;} c++,程式設計找出一個二維陣列的鞍點,如果沒有,又要輸出相應的資訊。 10樓:水撒了一地 #include using namespace std; void main() }c=0; for(i=0;i<=n-1;i++) for(j=0;j<=n-1;j++) if (max[i]==min[j] && *max[i]==*min[j]) {m=i+1; n=j+1; c++; cout<<"鞍點為:"<<*max[i]<<"位置:("< 要做到p排好序的同時c同時排好序,c的對應的元素關鍵字大小應和p正相關,否則必須分別排序。同時要排序後知道之前的位置,可以考慮用間接定址 需要一個等大小的指標陣列 而且,這樣做的話,並真正在地對陣列排序,而是對指標排序,通過排好序的指標懂得陣列的的大小順序,當然,排序前的位置也是知道的。includ... 你這裡nn裡面確實是二維陣列,char al 10 是說al是一個一維維度為10的二維陣列指標變數。因此和你的ne陣列是對應的,傳參是沒問題的。錯誤在於 1.你的函式呼叫有問題 nn ne 2.你給陣列賦值,al 0 asd 這種使用,是僅在陣列初始化的時候被允許的。如果要實現這個字串放到陣列,可以... 二維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語言程式設計 二維陣...c 二維陣列排序問題,C 二維陣列排序問題
c二維陣列傳遞問題,C語言怎麼以二維陣列作為引數傳遞的問題
關於c語言二維陣列輸出問題,C語言程式設計二維陣列輸出一個23的矩陣