我正在尝试对使用指向指针的指针实现的字符串数组进行排序。我正在使用的代码是:
void sort(){
char** names;
for(int i = 1; i < size; i++){
int k = i;
while((strcmp(names[k],names[k-1]) < 0) && (k > 0)){
char* temp;
temp = names[k];
names[k] = names[k-1];
names[k-1] = temp;
k--;
}
}
}
names 已经用另一种方法初始化并填充了 7 个名称。我在这条线上遇到了段错误
names[k] = names[k-1];
names[k-1] = temp;
但我不确定为什么。在 while 循环的第一次迭代后,我得到了 seg 错误,并且 k 递减到 0。它永远不会返回到 for 循环以再次增加 i 和 k。有人可以解释为什么我会遇到段错误以及如何解决它吗?