Ich versuche Insertion Sortierung über Vektoren in C++, aber meine ./a.out gibt dies zurück: * Fehler in `./Insertion ': doppelt frei oder Korruption (out): 0x000000000154fc20 *Double Free oder Korruption (out): 0x000000000154fc20 in C++
Ich weiß nicht, warum das passiert, ich habe andere Probleme wie diese gesehen und es geht immer um den Code, kaufen in meinem Code Ich weiß nicht, was das Problem ist.
Dies ist der Code:
#include<iostream>
#include<vector>
using namespace std;
void insertion(vector<int> v){
int tam = v.size();
int key,j,i;
for(i=1; i<tam; i++){
key = v[i];
j=i-1;
while(j>=0 && v[j]>key){
v[j+1] = v[j];
j--;
}
v[j]=key;
}
}
void print(vector<int> v){
cout<<endl;
for(int i = 0; i<v.size(); i++){
cout<<i+1<<".\t"<<v[i]<<"\n";
}
}
int main(){
cout<<"----------------INSERTION SORT----------------\n\n";
cout<<"\nPlease, fill the vector: \n\n";
vector<int> v;
int a;
bool response = true;
while(response){
cout<<"\nEnter your number: ";
cin>>a;
v.push_back(a);
cout<<"Another?(1/0): ";
cin>>response;
cout<<endl;
}
insertion(v);
print(v);
return 0;
}
"und es ist immer über den Code" - ja, es ist. –
lernen, einen Debugger zu verwenden –
Valgrind wird hier helfen. kompilieren mit -g und tun valgrind ./executable – PYA