未经处理的错误0xC0000005

请问这是什么原因呢?

img


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]报错

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^