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