該任務主要是使用指針來輸入一個字符串,並在有'\'字符的地方對其進行分片,並使用指針在單獨的行中輸出它們。當我使用數組而不是指針時,程序運行正常。但是,使用存儲字符串的指針給出消息「分段錯誤」。代碼如下:使用指針字符串給出分段錯誤
#include <stdio.h>
#include <stdlib.h>
int main() {
char *name;
char *sep[100];
int i = 0, j = 0, k = 0;
scanf("%[^\n]s", name);
for(i = 0; (*(name+i)) != '\0'; i++) {
if((*(name+i)) == '\\') {
*((*(sep+k))+j) = '\0';
j = 0;
k++;
} else {
*((*(sep+k))+j) = *(name+i);
j++;
}
}
for(i = 0; i <= k; i++) {
printf("%s\n", *(sep+i));
}
return 0;
}
這將是真棒,如果你能指出什麼,哪裏出了問題,而不是給我一個替代解決方案。 TIA。
您必須爲'sep'數組中的每個指針分配空間。 'name' var也一樣。 – LPs