動態開闢二維陣列

2021-06-22 08:27:46 字數 1011 閱讀 9015

近日寫到乙個程式,用到了要動態開闢二維陣列,一想,自己就會兩種。一者:用new在堆上開闢;二者:用vector開闢。技巧沒有多少,但是確實是折騰了我半天!首先,大家去網上搜一下,動態開闢二維陣列的文章特別多,再加上我這篇就更多了,我本不想寫這篇博文的。但看了網上各位「大蝦」「大牛」寫的,覺得還是有必要寫一下!給各位講清楚點,以防被網上質量殘次不齊的文章誤導了。

寫文章者,都是學習總結之用!為了是自己的快活,也為了別人的參考方便。

那我想在就講講我經常用到的兩種方法;

一:c++ new 法

#include

#include

using namespace std;

void main()

//輸入陣列

cout<>element[i][j];}}

//輸出陣列

cout<

關鍵之處我用紅筆標繪出來了!大家肯定一看就懂了!

但是,有時對於新手來說,確實很懵懂的。開闢一維陣列是何等簡單,但是二維陣列還是用開闢一維陣列的思想!

程式不足之處是沒有銷毀開闢的空間!那大家在看看銷毀的**吧!

//銷毀空間

for (i = 0; i < row; i++)

delete element;

element = null;

這是銷毀開闢的空間的**!

用new在堆上開闢的空間,必須要用delete釋放了,不然要出現記憶體洩露了!

二:vector法

學習c++,就不得不學習stl了。用vector開闢二維陣列也不失為乙個好辦法!

首先看一段**!

#include

#include

#include

using namespace std;

void main()

}cout<

編譯時兩次呼叫vector的建構函式物件test,第一次呼叫構造乙個無名的含有col個0的vector物件.

第二次呼叫建構函式,以這個無名向量為初始值初始化它的row個元素!

動態開闢二維陣列,初始化二維陣列指標

動態開闢二維陣列主要有兩種方法 1 用new在堆上開闢 2 用vector開闢。比如用new開闢 int output new int row for int i 0 i 用delete銷毀記憶體空間,一定要記得 for i 0 i row i delete output output null 比...

C 動態開闢二維陣列及memset 的應用

在c 中要動態地開闢陣列,需要使用new,那麼如果要開闢m行n列的二維陣列呢?需要我們首先開闢乙個長度為m的指標陣列,然後對於每個指標開闢乙個長度為n的陣列 int a new int m for int i 0 i m i 如果這時我想讓陣列的每個值都為0呢?如何使用memset 如果只想通過一次...

二維動態陣列

之前都是寫的小程式,一直用的靜態陣列,也沒出現問題。可是,最近碰到大型程式和工程,這時就要用動態陣列了。因為靜態陣列時儲存在棧中的,而動態陣列儲存在堆中。計算機的棧只有1m大小,而堆可以理論上達到計算機記憶體大小,可見當大型工程資料量非常大時,必須使用動態陣列了。c 的動態陣列的建立和刪除要用到ne...