如何更新函数外的数组(指向指针)

时间:2015-09-30 05:15:02

标签: c++ pointers

我有一个函数,它接受输入,指向2D数组的指针和指向1D数组的指针。

int resize(double *x, double **y, int n){

此函数的目的是将x和y的大小调整为长度(n)的两倍。

我创建了两个新的数组 - 长度加倍

double **yTemp = NULL;
double *xTemp = NULL;
xTemp = new double[2*n + 1];
yTemp = new double*[2*n + 1];

然后循环遍历并将xTemp和yTemp的值替换为x和y

然后将它们设置为彼此相等:

        y = yTemp;
        x = xTemp;
        return 2*n;

并退出该函数,y和x似乎失去了额外的长度。

对此的任何帮助都会很棒!

1 个答案:

答案 0 :(得分:5)

y之前xreturn的分配是设置这些变量的本地值,而不是从调用者传入的值。为此,您可以将函数声明更改为

int resize(double *&x, double **&y, int n){

允许更改来电者的值。