我想对使用指针指针实现的字符串数组进行排序。我使用的代码是:对指针进行排序指针
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--;
}
}
}
的名字已经被初始化,并弥漫着另一种方法7名。我在这条线上遇到seg故障
names[k] = names[k-1];
names[k-1] = temp;
但我不确定为什么。在while循环的第一次迭代之后,我得到了seg错误,并且k递减为0.它永远不会返回for循环来再次递增i和k。有人可以解释为什么我得到seg故障以及如何解决它?
'names'不能在另一种方法初始化,因为它是在你所展示的是一个本地定义? –
我只是这样做,以显示名称是char **。它实际上并没有在那里声明 – tcas271
@ tcas271我们不知道你的char **是如何初始化或设置的。这本身可能是导致事故的原因之一。 – PaulMcKenzie