使用引用/指针调整数组大小

Array resizing using reference / pointers

我编写了一个小代码来调整动态数组的大小,传递指针 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)

这种操作也可以吗? (调整大小)。非常感谢,很抱歉提出愚蠢的问题,我是初学者。

如果将 X 作为 int* 传递,则传递的是指针的副本。这意味着如果您在行 X = new_X; 上更改 X,您将只会更新副本,而不是原始文件。

您可以像现在一样继续使用对指针的引用,或者将 X 作为 int* 但 return new_X 并让调用者使用 returned 值。