我编写了一个小代码来调整动态数组的大小,将指针 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*
但返回 new_X
并让调用者使用返回值。
关于c++ - 使用引用/指针调整数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31321711/