據我所知,動態分配的二維數組應分配是這樣的:動態二維數組:int(* ptr)[4] = new int [7] [4];
int **rows = new int*[7];
//for loop assigning all seven rows[i] a "new int[4]"
然而,下面還爲我的作品:
int (*ptr)[4] = new int[7][4]; //create dynamic 2d array
for(int i = 0; i < 7; ++i) //initialize and test
{
for(int j = 0; j < 4; ++j)
{
ptr[i][j] = i + j;
cout << ptr[i][j] << ' ';
}
cout << endl;
}
delete[] ptr;
/*
output:
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8
6 7 8 9
*/
我爲什麼要使用更復雜的方法我首先提到的,當我可以創建一個動態二維數組與這一行:
int (*ptr)[4] = new int[7][4];
我明白任何見解!
(我沒有使用的valgrind發現內存泄漏。)
[相關常見問題](http://stackoverflow.com/questions/4810664/) – fredoverflow