C++二级指针
如果動態分配一個2維數組,3行4列,
int **map = new int*[3]; for (int i = 0; i < 3; i++) {*(map + i) = new int[4]; }當這樣寫是動態申請的內存,內存空間為如下所示。可以看出動態申請的二維數組中內存不是連續的,
for (int i = 0; i < 3; i++) {for (int j = 0; j < 4; j++){cout << &map[i][j] << "\t";}cout << endl; } /* 0040AF80 0040AF84 0040AF88 0040AF8C 0040AFD0 0040AFD4 0040AFD8 0040AFDC 0040B020 0040B024 0040B028 0040B02C */如果直接構造一個二維數組,則內存空間為如下,可以看出內存空間是連續的,
int m[3][4]; int * p = *m; for (int i = 0; i < 12; i++) {cout << (p+i) << endl; } /* 003AFC40 003AFC44 003AFC48 003AFC4C 003AFC50 003AFC54 003AFC58 003AFC5C 003AFC60 003AFC64 003AFC68 003AFC6C */總結
- 上一篇: ubuntu安装Redis+安装mysq
- 下一篇: Opencv数据符号说明