下面是我尝试运行的代码,我不断收到错误分段错误。 增加了比较。在下面的程序中,我需要考虑一个5000000或更少(这是n)数字的数组,并在这些数字上实现快速排序。执行C++程序时出现分段错误(核心转储)错误
int compare (const void * a, const void * b)
{
const double *da = (const double *) a;
const double *db = (const double *) b;
return (*da > *db) - (*da < *db);
}
int main(){
int n = rand()% 5000000;
double arr[n];
for (int i=0; i<n; i++)
{
arr[i] = (double)rand();
}
qsort(arr,n, sizeof(double), compare);
for (int i=0;i<n;i++){
cout<<arr[i]<<"\n";
}
return 0;
}
'n'的值是什么? –
可能太大了...... –
你能告诉我们'compare'的代码吗? – miniBill