1
這裏是我研究過的2維數組的代碼,我也知道指向指針的指針,但是我無法可視化2d數組指針。請幫助我理解二維數組的動態分配。動態分配超過1維數組
int **arr = new int*[size1];
for(int i = 0; i < size1; ++i) {
arr[i] = new int[size2];
}
請不要只是代碼,請通過解釋或視覺解釋。
這裏是我研究過的2維數組的代碼,我也知道指向指針的指針,但是我無法可視化2d數組指針。請幫助我理解二維數組的動態分配。動態分配超過1維數組
int **arr = new int*[size1];
for(int i = 0; i < size1; ++i) {
arr[i] = new int[size2];
}
請不要只是代碼,請通過解釋或視覺解釋。
如果你使用(*) - C++在這個變量的內存中創建位置。地點是一個動態的,因爲你不specyfiy大小變量。請閱讀此:http://www.cplusplus.com/doc/tutorial/dynamic/
[這裏的答案](http://stackoverflow.com/questions/8653017/two-dimensional-array-via-pointer)有一張照片,可以幫助你。 –
請注意,二維數組和一維數組的數組並不完全相同 - 一個區別是「真正的」二維數組保證是矩形的(因爲它是一個連續的單個內存塊),而1D數組的陣列可能是「粗糙的」(如果你想的話,你可以分配不同長度的各種一維數組)。您發佈的代碼分配一個指針數組,然後爲每個指向這些指針的指針分配一個1D數組。 –