我将插入排序实现为:
void insertion_sort(int * list, int len ) {
int i, j;
for(j=1; j<len; j++) {
int key = list[j];
i = j - 1;
while(i >= 0 && list[i] > key) {
list[i + 1] = list[i];
i = i - 1;
}
list[i + 1] = key;
}
}
当我这样调用这个函数时:
int list[] = {5, 6, 4, 3, 1, 2};
insertion_sort(list, sizeof(list)/sizeof(list[0]));
它工作正常。但是当我将列表声明为:
int * list = {5, 6, 4, 3, 1, 2};
它失败。我知道我如何使用指针存在一些问题,但你能详细说明一下吗?谢谢!