C visual studio 2017 中从函数到函数的动态数组

Dynamics array from function to function in C visual studio 2017

本文关键字:函数 动态 数组 visual studio 2017      更新时间:2023-10-16

我需要从一个函数转移到另一个函数。我尝试这样做:

    double toarray(double x,int n)
{
    double * results = new double[n];
    for (int j = 0; j < n; j++)
    {
        results[j] = function( x);
        x += jump;
    }
    return *results;
}
void showarr(double*arr[],int n,double x)
{
    for(int i=0;i<n;i++)
    {
        printf("Wynik dla x=" "%.2lf", x);
        if (denomcheck(x) == true && function(x)<INT_MAX)
        {
            printf(" | y=%.2lf n", arr[i]);
        }
        else
            printf(" | MIANOWNIK = 0!!! n");
        x += jump;
    } 
}

但是当我尝试将 toarray 调用为 showarr 的变量时:

showarr(toarray(x, n), n, x);

我在与 0167 年相比收到 E2017 错误。

"参数类型"双

精度"与参数类型"双精度**"不兼容"

您的toarray应该返回指向数组的指针,而不是单个双精度值:

double *toarray(double x,int n) {
     double * results = new double[n];
     ...
     return results;
}

showarr应该处理一个双精度数组(作为指向此类数组的指针传递,要么写为 double arr[] 要么写为 double *),而不是指向双精度的指针数组(这就是 double *arr[] 的含义):

void showarr(double arr[],int n,double x) {
    ...

此外,您应该删除您创建的数组,即在之后不需要arr的地方使用 delete[] arr