저는 C++을 처음 접했을 때, insert_sort 함수의 출력을 주 함수로 전달하려고합니다. 이것은 내가 삽입 정렬 알고리즘은 여기서 중요하지 않습니다C++에서 배열 전달하기
candidate function not viable: no known conversion from 'int' to 'int *' for 1st argument; take the
address of the argument with &
int* insertion_sort(int* arr);
입니다 무엇을 얻을 내 코드
#include "include.h"
using namespace std;
int main()
{
int arr[10] = {12,9,32,1,0,5,13,7,4,2};
for (int i = 0; i < 10 ; ++i)
{
cout << insertion_sort(arr[i]) << endl;
}
return EXIT_SUCCESS;
}
int* insertion_sort(int* arr){
int key, temp =0;
for (int i = 0; i < 10; ++i)
{
key = i+1;
while(key >= 0){
if (arr[key] < arr[key -1])
{
temp = arr[key -1];
arr[key -1] = arr[key];
arr[key] = temp;
}
key--;
}
}
return arr;
}
입니다. 배열 포인터가 함수에 전달되지 않는 이유를 모르겠습니다.
글쎄, 당신은 여기에'int'를 전달하고 있습니다 : 함수가 int에 대한 포인터를 기대하면서'cout << insertion_sort (arr [i]) << endl; 아마 전체 배열을 전달하기위한 것입니다 : 1) 루프를 제거하십시오. 2)'insertion_sort (arr)'로 호출합니다. 배열의 길이를 다른 매개 변수로 전달할 수도 있습니다. –