C 中動態分配二維陣列

2021-04-12 17:14:36 字數 1019 閱讀 8857

在釋放指標之後一定要記得將其置為null,否則在之後的程式中容易引起無法預知的錯誤。

#include

#define

n 4typedef 

intp[n];

//方法一用到

using

namespace

std;

intmain()

delete ptr1;

cout 

<<

endl;

//方法二:使用陣列指標

introw 

=n;     

//二維陣列的行數?

intcolumn 

=n;  

//二維陣列的列數

//分配乙個指標陣列,其首位址儲存在pmatrix中

int**

pmatrix 

=new

int*

[row];

//為指標陣列的每個元素分配乙個陣列

for(

inti =0

; i 

<

row; i++)

pmatrix[i] 

=new

int[column];

//以上是分配,以下是釋放

for(

inti =0

; i 

<

row; i++)

delete  pmatrix[i];

delete  pmatrix;

pmatrix=null;

//這些技術可用於構造乙個矩陣類

return0;

}

先new乙個int*陣列,然後對每個int*分別new乙個int*

得到的是int**,即2維陣列,和一般2維陣列一樣用

int** matrix = new int*[10];

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

matrix[i] = new int[10];

matrix[2][5] = 3;

動態分配二維陣列

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 ...

動態分配二維陣列

原文摘自 假設我需要乙個nrows ncolumns陣列,則可以用以下幾種方法動態分配空間 1.動態陣列的成員都可以用正常的陣列下標 array i j include include void main printf n free array 2.讓陣列的內容連續,但在後來重新分配列的時候會比較困...

動態分配二維陣列

眾所周知,每乙個二維陣列有n行個二級指標指向陣列的每一行,每一行有m個一級指標指向陣列的每乙個元素。因此,我們動態分配二維陣列只要分配n個二級指標,n m個一級指標就行了,先來看乙個常用的方法 int i,p int malloc row sizeof int for i 0 i但這個方法每次分配指...