動態二維陣列的分配和釋放

2021-06-16 15:47:46 字數 970 閱讀 8553

兩種方法:

1。先定義乙個一維陣列的型別,然後再用該型別定義乙個一維陣列(實際上已經成為二維的)

相當於遞迴定義

typedef int array[col]; //使用typedef定義乙個具有col個元素的陣列型別

array *a; //定義二維陣列,與一維陣列相同

a=new array[row]; //為該一維陣列(實際上二維)申請空間

該方法定義的動態二維陣列的釋放只需以下語句即可:

delete a;

a=null;

2。 使用陣列指標,分配乙個指標陣列,將其首位址儲存在b中,然後再為指標陣列的每個元素分配乙個陣列

int **b=new int*[row]; //分配乙個指標陣列,將其首位址儲存在b中

for(i=0;i3. int *mat = new int[m * n];

這種方法的優點是記憶體連續,存續速度快。並且釋放時也很簡單直接delete mat;即可。

[cpp]view plain

copy

print?

#include

using

namespace std;

void main(void)

// int *mat = new int[n * n]; // 方法3

// 賦值

for (int i = 0; i < 3; i++) }

// 輸出

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

cout<}

// 釋放

// 方法2

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

delete mat;

mat = null;

// 方法3,很簡單

// delete mat;

system("pause"); }

C C 動態二維陣列的記憶體分配和釋放

c語言 cpp view plain copy 二維陣列動態陣列分配和釋放 陣列指標的記憶體分配和釋放 方法一 char a n 指向陣列的指標 a char n malloc sizeof char n m free a 方法二 char a inti a char malloc sizeof c...

C中分配和釋放二維陣列

動態分配二維陣列,在資料量很多的時候也不會導致程式崩潰 注意要free掉 sizeofelement 陣列中每個元素的大小 row 行數,從1開始計數 col 列數,從1開始計數 void malloctwodimensionarray unsigned sizeofelement unsigned...

動態分配二維陣列

1.c語言動態分配二維陣列 1 已知第二維 code 1 char a n 指向陣列的指標 a char n malloc sizeof char m printf d n sizeof a 4,指標 printf d n sizeof a 0 n,一維陣列 free a 2 已知第一維 code ...