【发布时间】:2013-06-08 14:05:43
【问题描述】:
对于一维数组,我可以使用数组名作为指针并为其添加偏移量以访问数组的每个元素。二维数组有类似的东西吗?
我定义了一个二维数组如下
int arr[2][3] = {{1,2,3}, {4,5,6}};
int** arrPtr = arr;
但第二行出现编译器错误。二维数组不应该有int**类型吗?
我在这里遇到了另一个线程:
C++ Accessing Values at pointer of 2D Array
看到了这个:
2dArray = new int*[size];
谁能告诉我int*[size] 是什么意思? (size 是int,我猜)。
非常感谢。
【问题讨论】:
-
虽然数组可以衰减为指针,但数组数组不能衰减为双指针。优先使用
std::array和std::vector而不是 C 数组 -
二维数组和指向指针的指针具有完全不同的内存布局。二维数组分配连续内存,而指针指针可以指向非连续内存,因此它们不可交换
-
谢谢,只是有时由于限制我不得不使用数组..
标签: c++ multidimensional-array