基本指针和qsorting

时间:2011-10-13 00:51:04

标签: c arrays pointers qsort

当涉及到指针时,我是初学者。最近,我被要求编写一个函数,该函数将接收指向数组的开始和结束指针,然后使用qsort对它们进行排序。这就是我所拥有的:

int isort(int* begin, int* end)
{
    int length = 0;

    while((begin != end)){
            begin++;
            length++;
    }

   size_t array_len = length;
     qsort((void *)begin, array_len, sizeof(int), int_cmp);

    return length;
}

所以我的想法是让while循环得到数组的长度(这是有效的),但我正在努力在实际的qsort部分关于什么放入第一个参数(我认为我的问题是那里)。对于错误,我得到了一堆内存映射和回溯的东西。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

你在循环中修改begin,所以你丢失了指针,最后用错误的指针调用qsort。这样的事情怎么样:

int isort(int * const begin, int * const end)
{
    qsort(begin, end - begin, sizeof(int), int_cmp);
    return end - begin;
}