如何调用返回指针数组的函数?C++

How do I call my function that returns an array of pointers? C++

本文关键字:数组 函数 C++ 指针 返回 何调用 调用      更新时间:2023-10-16
指针

是全新的,所以我为新手问题道歉。我在尝试调用函数时收到转换错误。此函数应该返回指向末尾包含 1 的更新数组的指针。

int* appendList(int x, int &arraySize, int *list)
{
    arraySize++;
    int *array2 = new int[arraySize];
    for(int i=0; i < arraySize-1; i++)
    {
        array2[i] = list[i-1];
    }
    array2[arraySize]=x;
    return array2;
}

我的主要功能如下。

int main()
{
    int size=0;
    int *list;
    cout << "Please enter the size of your array: ";
    cin >> size;
    list = new int[size];
    cout << "nPlease enter the numbers in your list seperated by spaces: ";
    for(int i=0; i < size; i++)
    {
        cin >> list[i];
    }
    cout << endl;
    cout << "The array you entered is listed belown ";
    for(int i=0; i < size; i++)
    {
        cout << setw(3) << list[i];
    }
    list = appendList(1, size, list);
    for(int i=0; i < size; i++)
    {
        cout << setw(3) << list[i];
    }
    return 0;
}

对函数 appendList 的调用会导致参数 3 的转换错误,但我不确定为什么? 函数参数必须保持原样。

谢谢你的帮助。

我在你的代码中发现的一个错误。

 int* appendList(int x,int &arraySize,int *list)
        {
        arraySize++;
        int *array2=new int[arraySize];
        for(int i=0;i<arraySize-1;i++)
        {
            array2[i]=list[i-1];//this is incorrect because for i=0 it becomes list[-1] which is wrong
        }
        array2[arraySize]=x;
        return array2;
        }