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

标签 c++ arrays pointers reference

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

相关文章:

c++ - 单链表时间

C++ |无效*数据[1000]

c++ - 如何在编译时从类型创建静态字符串

python - 切板算法

c++ - 在嵌套循环中使用 OpenMP 的性能问题

java - 双重增强 for 循环以在 boolean 值 [] [] 中计数?

javascript - ES6 数组扩展极端怪异。它仅使用 webpack 恢复为常规数组

c - C语言中ptr = my_array和ptr = &my_array[0][0]有什么区别?

c++ - 方程解析库 C++

c++ - 找到OpenCV.cmakeConfig.cmake