【发布时间】:2014-03-21 19:59:29
【问题描述】:
我正在尝试使用动态数组而不使用向量来创建自己的表类。我明白了
T** values = new T* [rows];
创建一个指针数组或指针的指针。我不确定如何为每个指针初始化一个新数组。我最初认为应该是
for (int x = 0; x < rows; x++)
values[x] = new T [columns];
但它看起来也有问题,因为我没有在该代码中使用任何星号。所以我又想了想,现在我想我可能不得不使用一个新的指针来遍历数组中的指针。我真的不知道它的代码。我想说的是
T* pointer;
for (pointer = values; pointer < values+rows; pointer++)
*pointer = new T [columns];
我也不知道如何在指向的数组中设置值。我认为 *values 指向指针数组,而 **pointers 指向值数组。我不确定如何指定我想要的数组.. 是否只是像 **values[0][0] = T 将值设置在第一个指针指向的数组的第一个值内?
【问题讨论】:
-
“我没有在该代码中使用任何星号”——
values[x]中隐藏了一个星号,相当于*(values + x)。 -
T** values = new T* [rows * columns];为我工作 -
@LordAro 这分配了太多内存。你只需要
rows指针。 -
@LordAro 是的,您应该在顶层分配
rows指针,并在每行分配一个columns条目数组。 -
@interjay 我不知道这有什么不同,你能详细说明一下吗?
标签: c++ arrays pointers dynamic multidimensional-array