二維陣列的動態分配

2022-03-15 00:08:23 字數 1579 閱讀 8349

一維陣列分配比較簡單,在此略過。但是平時經常遇到需要動態分配二維陣列的情況。下面給出幾種二維陣列分配方式。

注:二維陣列行座標、列座標都是通過m,n來傳遞的。

1. 利用一維陣列分配方式,模擬二維陣列

其實棧上二維陣列仍然是個連續的記憶體空間,只不過在訪問時做了相應的處理。那麼,動態分配時,也可分配一塊連續的記憶體空間。訪問時通過(d + i m + j )訪問即可。

intm =6

,n =3

;

char*d

=(char*)

malloc

(sizeof

(int

)*m *n

);

for(

inti =0

;i++i

)

cout

<<

endl

;

}

2. 利用stl vector實現動態二維陣列

stl中vector是基於固定長度陣列的延伸,那麼利用這種方法也可以得到動態二維陣列。具體方法見**。

intm =6

,n =3

;

vector

<

vector

>d(

m,vector(n

,0));

for(

inti =0

;i++i

)

cout

<<

endl

;

}

3. 層層遞進分配法

此方法參考了:

直接複製**:

char

**allocatecharacterboard

(size_t

xdimension

,size_t

ydimension

)

return

myarray

;

}

void

releasecharacterboard

(char

**myarray

,size_t

xdimension

)

delete

myarray

;// delete first dimension

}

動態分配二維陣列

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但這個方法每次分配指...