C二維陣列的程式,一個 C 二維陣列的程式

2022-11-25 15:55:55 字數 2900 閱讀 9695

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]<<"位置:("<

c 二維陣列排序問題,C 二維陣列排序問題

要做到p排好序的同時c同時排好序,c的對應的元素關鍵字大小應和p正相關,否則必須分別排序。同時要排序後知道之前的位置,可以考慮用間接定址 需要一個等大小的指標陣列 而且,這樣做的話,並真正在地對陣列排序,而是對指標排序,通過排好序的指標懂得陣列的的大小順序,當然,排序前的位置也是知道的。includ...

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語言程式設計 二維陣...