我想對使用指針指針實現的字符串數組進行排序。我使用的代碼是:對指針進行排序指針
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