从行指针访问二维数组的行索引

时间:2016-03-04 10:59:27

标签: c++ arrays

我有一个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?

获取表的行索引(在本例中为10)

1 个答案:

答案 0 :(得分:0)

你不能,因为你正在使用动态内存分配;意味着元素不会存储在连续的内存位置。

但也许这不是你想要的......注意表[10]和&amp; table [10]是不同的东西。

由于您使用指针指针,您可以使用偏移来获取任何&amp; tab [index]元素的索引。它们是2D数组中的列,由table = new tab*[n+1]分配,存储在连续的内存位置。这些位置中的每一个都有一个标签*,所以矩阵的行。