0

这是我知道的动态分配多维数组的两种方法:

int (*numbers)[4] = new int[3][4]

int **numbers = new int*[3]; 

这两个在内存中代表相同的东西吗?实际上,它们代表什么以及如何代表?(内存图真的很有帮助!)

4

1 回答 1

3

不,第一个将创建 12 个整数 (3*4),在内存中它们将按顺序排列。第二个创建3个指向整数的指针

即第一个将像

[1,2,3,4][5,6,7,8][9,10,11,12]

所以你有 3 个 4 元素的整数数组,而第二个例子看起来更像

[0x12345678,0x12345678,0x12345678]

即,3个未初始化的整数指针

于 2012-10-17T04:10:08.670 回答