我有一个2D数组如下:
struct tab **table;
table = new tab*[n+1];
for(int i = 1; i < n+1; i++)
table[i] = new tab[n+1];
现在我有一个指针指向2-D数组的某一行tab* start = table[10]
。我怀疑的是,我会调用一个函数并将start作为参数传递。那么如何使用start?
答案 0 :(得分:0)
你不能,因为你正在使用动态内存分配;意味着元素不会存储在连续的内存位置。
但也许这不是你想要的......注意表[10]和&amp; table [10]是不同的东西。
由于您使用指针指针,您可以使用偏移来获取任何&amp; tab [index]元素的索引。它们是2D数组中的列,由table = new tab*[n+1]
分配,存储在连续的内存位置。这些位置中的每一个都有一个标签*,所以矩阵的行。