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

How to update an array outside a function (pointing to pointers)

本文关键字:数组 指针 函数 何更新 更新 外部      更新时间:2023-10-16

我有一个函数,它接受一个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的值替换为x和y, yTemp的值替换为x和y

然后设置它们彼此相等:

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

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

任何帮助在这将是伟大的!

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

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