Этот код работал, но какой-то компилятор выдает ошибку сегментации. Если я прокомментирую sumNumber
, то ошибки не произойдет.ошибка сегментации в функции C и рекурсии
int sumNumber(int array[], int k);
int main(void) {
int n;
static int num[MAX];
int k;
scanf("%d", &n);
scanf("%d", &k);
for(int i = 0; i < n; i++){
scanf("%d", &num[i]);
}
quick_sort(num,0,n-1);
printf("%d\n",sumNumber(num,k-1));
return 0;
}
int sumNumber(int array[],int k){
if(k < 0){
return 0;
}
return (array[k] + sumNumber(array,k-1));
}
Звучит как [переполнение стека] (http://stackoverflow.com/questions/33154028/segmentation-fault-in-c-and-recursion-function) для меня. –
Насколько велик 'n'? – Barmar
Возможно, есть ошибка в 'quick_sort'. Неправильные указатели могут оставлять бомбы замедленного действия, которые не срабатывают, пока не будет запущен какой-либо другой код. – Barmar