传入数据应该为地址

void sort(int* arr, int size, int (*compare)(int*, int*)) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (compare(&arr[j], &arr[j + 1]) == 1) {
//这里&不能去掉
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

传入数组时不用加&,因为数组名字本身就是一个地址

Last modification:December 16, 2022
如果觉得我的文章对你有用,请随意赞赏