从函数c ++返回指针

时间:2016-02-10 16:30:15

标签: c++ arrays pointers

当我尝试用C ++编译时,它说对sort_Array(int *,int)有一个未定义的引用。我一直在弄乱这个约一个小时,我无法弄清楚为什么我得到这个错误。我以为它告诉我使用指针。我必须完全按照为分配编写的原型使用原型,因此我不能将数组更改为指针或通过引用传递它,就像我认为它告诉我的那样。我还必须从用户那里获得数组的大小。这可能是我需要动态分配数组的情况。我突然想到了,但我不确定。

这是原型

    int *sort_Array(int [], int);

这就是我尝试使用它的方式

    int size;
    int initial_Array[size];
        cout << "What is the size of your array?" << endl;
        cin >> size;
        cin.ignore();

    sort_Array(initial_Array, size);

这是实际的功能

    int *sort_array(int unsorted_Array[], int size)
    {
        int *sorted_Array, i;
        sorted_Array = new int[size];

    //Function for sorting the array.

        selection_Sort(unsorted_Array, size);

    //Copies the newly sorted unsorted array variable to the sorted array varible.

        for(i=0; i<size; i++)
       {
            unsorted_Array[i] = sorted_Array[i];
       }

     return sorted_Array;
       }

1 个答案:

答案 0 :(得分:2)

您使用未初始化的intial_Array定义size

int size;
int initial_Array[size];

哪个是UB。

但是,当您定义sort_Array

时,您的错误来自于调用sort_array