插入使用动态内存分配排序

时间:2014-09-29 02:42:01

标签: c malloc dynamic-memory-allocation

您好我想使用动态内存分配执行插入排序。这是我的代码,这段代码给出了我需要左值的错误。请帮助我。

int *cardSorter(int *arrayPointer,int size){
    int j,i,key;
    for(j=1;j<size;j++){
        key=*(arrayPointer+j);
        i=j-1;
        while(i>=0||*(arrayPointer+i)>key){
            *((arrayPointer+i)+1)=*(arrayPointer+i);
            i--;
        }
        //GIVING ERROR AT THIS LINE : lvalue requied
        *(arrayPointer+i)+1=key;
    }
    return arrayPointer;
}

这里ArrayPointer指向我动态分配的内存。

1 个答案:

答案 0 :(得分:1)

正如您的评论所述,

//GIVING ERROR AT THIS LINE : lvalue requied
*(arrayPointer+i)+1=key;

应该是

*(arrayPointer+i+1) = key;

或者,甚至更容易阅读,

arrayPointer[i+1] = key;