[英]Returning a Pointer from a function c++
当我尝试在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;
}
您可以使用未初始化的size
定义intial_Array
:
int size;
int initial_Array[size];
哪个是UB。
但是你的错误来自调用sort_Array
当你定义sort_array
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.