프로그램을 실행할 때마다 메시지가 나타납니다 : 분할 오류 (코어 덤프). 나는 약간의 연구를 시도하고 불법 메모리에 할당하는 것과 관련이있는 것으로 보인다. 나는 또한 프로그램 디버깅을 시도했는데 문제가 linearsort() 함수에 있다고 생각하기 때문에 주석 처리가 끝난 후 나머지 명령문은 올바르게 작동합니다.오류 : 분할 오류 (코어 덤프 됨) 배열?
#include <iostream>
using namespace std;
int main()
{
void linearsort(int [], int);
int arr[10];
for(int j = 0; j < 10; j++)
arr[j] = j +1;
linearsort(arr,10);
for(int i = 0; i < 10; i++)
cout << arr[i] << " ";
cout << endl;
cin.get();
return 0;
}
void linearsort(int arr[],int n)
{
int temp;
for(int pass = 0; pass < n - 1; n++)
for(int cand = pass + 1; cand < n; cand++){
if(arr[pass] > arr[cand]){
temp = arr[pass];
arr[pass] = arr[cand];
arr[cand] = temp;
}
}
}
'n ++'는'pass ++'이어야합니다. – Dave
그런 것들을 위해서 스스로 디버깅 할 수 있습니다. 도움을 요청하는 것보다 스스로 버그를 찾는 것이 훨씬 더 가치가 있습니다. 'lineoutort '에 던져 넣은 하나 또는 두개의'cout << ... << endl' 또는 디버깅 세션 (예 : gdb). 그러면 문제를 꽤 쉽게 발견 할 수 있습니다. ;) – Pikrass