C 中動態申請二維陣列並釋放方法

2021-06-19 05:50:46 字數 1660 閱讀 2238

c/c++中動態開闢一維、二維陣列是非常常用的,以前沒記住,做題時怎麼也想不起來,現在好好整理一下。

c++中有三種方法來動態申請多維陣列

(1)c中的malloc/free

(2)c++中的new/delete 

(3)stl容器中的vector

下面逐一介紹:

1.動態開闢一維陣列

//動態開闢一維陣列

void dynamiccreate1array()

執行結果:

2.動態開闢二維陣列

//動態開闢二維陣列

void dynamiccreate2array()

//輸入資料

printf("請輸入數:");

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

for(j = 0; j < n;j++)

scanf("%d",&p[i][j]);

//輸出資料

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

printf("\n");

} //釋放開闢的二維空間

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

free(*(p+i));

}

執行結果:

1.動態開闢一維陣列

void dynamiccreate1array()

{ int len;

cout<

cin>>len;

int *p = new int[len];

cout<

for(int i = 0; i < len; i++)

cin>>p[i];

cout<

2.動態開闢二維陣列

void dynamiccreate2array()

{ int m,n;

cout<

cin>>m>>n;

//動態開闢空間

int **p = new int*[m]; //開闢行

for(int i = 0; i < m; i++)

p[i] = new int[n]; //開闢列

cout<

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

for(int j = 0; j < n; j++)

cin>>p[i][j];

cout<

動態開闢二維陣列

void vectorcreate()

{ int m,n;

cout<

cin>>m>>n;

//注意下面這一行:vector "之間要有空格!否則會被認為是過載 "> > "。

vector> p(m,vector(n));

cout<

for(int i = 0 ; i < m ; i++)

for(int j = 0; j < n; j++)

cin>>p[i][j];

cout<

動態申請二維陣列並釋放方法

c c 中動態開闢一維 二維陣列是非常常用的,以前沒記住,做題時怎麼也想不起來,現在好好整理一下。c 中有三種方法來動態申請多維陣列 1 c中的malloc free 2 c 中的new delete 3 stl容器中的vector 下面逐一介紹 1.動態開闢一維陣列 cpp view plain ...

C 中動態申請二維陣列

這裡主要介紹c 中動態申請二維陣列的兩種方式,直接給出 很容易明白,簡單的作為乙個筆記。include include 輸入輸出操縱 include using namespace std 法一 new 方式申請 void dynamicarray for i 0 i rows i cout end...

C 動態申請二維陣列

剛學習,做下總結。以下是我的理解,如有錯誤歡迎指出。申請 int a 乙個指向指標的指標。int n m cin n m a new int n 申請乙個n個元素的一維陣列 作為行 for int i 0 i 關係如下假設 n 3 m 4 先申請乙個一維陣列,陣列的每個元素都是乙個指標變數 該陣列的...