您好我想使用动态内存分配执行插入排序。这是我的代码,这段代码给出了我需要左值的错误。请帮助我。
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指向我动态分配的内存。
答案 0 :(得分:1)
正如您的评论所述,
//GIVING ERROR AT THIS LINE : lvalue requied
*(arrayPointer+i)+1=key;
应该是
*(arrayPointer+i+1) = key;
或者,甚至更容易阅读,
arrayPointer[i+1] = key;