qsort中的无效指针算法

void pointer arithmetic in qsort

本文关键字:指针 算法 无效 qsort      更新时间:2023-10-16

我正在尝试制作类似qsort的东西,但当我尝试与void* 一起使用时,总是会出错

void my_sort(void* base, size_t num, size_t size, int(*compare)(const void*, const void*))
{
    size_t i, j;
    const void *first, *second;
    for (size_t i = 0; i < num*size; i+=size)
    {
        for (size_t j = size +i; j < num*size; j +=size)
        {
            first = base + i;
            second = base + j;
            if (compare(first,second)<0)
            {
                swap(base,i,j);
            }
        }
    }
}
first = ((char*) base) + i;
second = ((char*)base) + j;