请问这是什么原因呢?
void quicksort(int A[], int low, int high)
{
if (low < high)
{
int pivot = partition(A, low, high);
quicksort(A, low, pivot - 1);
quicksort(A, pivot + 1, high);
}
}
int partition(int A[], int low, int high)
{
int pivot = A[low];
while (low < high)
{
while (low= pivot)
--high;
A[low] = A[high];
while (low < high && A[low] <= pivot)
--low;
A[high] = A[low];
}
A[low] = pivot;
return low;
}
int main()
{
int A[10] = { 4, 5, 6, 8, 2, 3, 6, 9, 1, 7 };
quicksort(A, 0, 9);
int a = 0;
for (a; a < 10; a++)
{
printf("%d\n", A[a]);
}
return 0;
这种都是溢出或越界或访问无效内存。你看你的20行 low=0进入的函数, --low就等于-1了 ,所以A[low]报错
不知道你这个问题是否已经解决, 如果还没有解决的话: