一維陣列分配比較簡單,在此略過。但是平時經常遇到需要動態分配二維陣列的情況。下面給出幾種二維陣列分配方式。
注:二維陣列行座標、列座標都是通過m,n來傳遞的。
1. 利用一維陣列分配方式,模擬二維陣列
其實棧上二維陣列仍然是個連續的記憶體空間,只不過在訪問時做了相應的處理。那麼,動態分配時,也可分配一塊連續的記憶體空間。訪問時通過(d + i m + j )訪問即可。
2. 利用stl vector實現動態二維陣列
intm =6
,n =3
;
char*d
=(char*)
malloc
(sizeof
(int
)*m *n
);
for(
inti =0
;i++i
)
cout
<<
endl
;
}
stl中vector是基於固定長度陣列的延伸,那麼利用這種方法也可以得到動態二維陣列。具體方法見**。
3. 層層遞進分配法
intm =6
,n =3
;
vector
<
vector
>d(
m,vector(n
,0));
for(
inti =0
;i++i
)
cout
<<
endl
;
}
此方法參考了:
直接複製**:
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但這個方法每次分配指...