當我嘗試編譯這個時,我總是收到分段錯誤。我是否需要檢查偶數和奇數?我知道這意味着我試圖獲得我沒有的記憶,但我不知道我犯了什麼錯誤。這也是C。保持分段錯誤(核心轉儲)
#include<stdio.h>
int main()
{
char str[41], even[21], odd[21], *p, *pstr, *e, *o;
printf("Enter a string (40 characters maximum):");
scanf("%s", str);
*p=str[0];
*pstr=str[0];
for(*p=even[0]; *p != '\0';p++){
if((p-pstr) % 2 == 0){
*e=*p;
e++;
} else{
*o=*p;
o++;
}
}
*o = '\0';
*e = '\0';
printf("The even string is:%s", even);
printf("The odd string is:%s", odd);
return 0;
}
'* p = str [0 ]。 * pstr = str [0];'使用未初始化的變量。 – BLUEPIXY
當你這樣做時,你認爲'p'指向了什麼:'* p = str [0]'? – WhozCraig