#include <bits/stdc++.h>
using namespace std;
int* insertionSort(int* a);
int main()
{
int a[5];
for(int i=0;i<5;i++)
{
cin>>a[i];
}
int b[5];
*b = insertionSort(a);
for(int i=0;i<5;i++)
{
cout<<b[i]<<" ";
}
}
int* insertionSort(int* a)
{
for(int i=1;i<5;i++)
{
int key=a[i];
int j=i-1;
while(j>0 && a[j]>key)
{
a[j]=a[j+1];
j-=1;
}
a[j+1]=key;
}
return a;
}
所以這是我的代碼插入排序。但是當我運行它時,它給了我錯誤C++數組傳遞和返回
insertionSort.cpp: In function ‘int main()’: insertionSort.cpp:15:21: error: invalid conversion from ‘int*’ to ‘int’ [-fpermissive] *b = insertionSort(a);
我想知道在函數中傳遞和返回數組如何在C++中工作。我的代碼中有什麼錯誤?
P.S:可能發生我的插入代碼可能錯誤。我沒有真正測試過,所以請原諒我,因爲這個錯誤我無法檢查它。如果有人可以詳細解釋它,這將非常有幫助。
數組不是指針和指針不是數組。 – molbdnilo