当我尝试用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;
}
答案 0 :(得分:2)
您使用未初始化的intial_Array
定义size
:
int size;
int initial_Array[size];
哪个是UB。
但是,当您定义sort_Array
sort_array