【发布时间】:2015-07-09 15:20:09
【问题描述】:
我编写了一个小代码来调整动态数组的大小,将指针 X 作为引用传递。
void resize(int*& X , int & dimX){
int * new_X = new int [dimX+20];
for(int i=0;i<dimX;i++)
new_X[i] = X[i];
delete [] X;
X = new_X;
dimX += 20;
}
我的疑问是:如果我决定将数组 X 作为唯一指针传递,那么代码会有什么不同? 例如:
void resize(int* X , int & dimX)
这种操作甚至可能吗? (调整大小)。非常感谢,抱歉这个愚蠢的问题,我是初学者。
【问题讨论】:
-
原始数组不是“动态的”(正如您需要做的工作所见!)。如果您需要“动态”集合,请使用
std::vector或std::list。 -
@crashmstr 感谢您提供信息 :) 我知道向量类,但我只需要自己做一个调整大小函数,我想知道的是:传递数组 X 的最佳方法是什么功能?以及传递 int * X 而不是 int *&x 将如何影响代码。
-
要修改作为参数传递给函数的东西,你需要传递它的引用或指向那个东西的指针。所以如果你想修改一个指针,你需要传递一个指针的引用。
标签: c++ arrays pointers reference