这是一个初学者的问题:这是为什么打破/给出一个错误?这个程序为什么会出现分段错误?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *strtrim_right(char *p)
{
char *end;
int len;
len = strlen(p);
while (*p && len)
{
end = p + len-1;
if(isalpha(*end))
*end =0;
else
break;
}
return(p);
}
int main()
{
char *x="PM123BFD";
strtrim_right(x);
printf("%s", x);
return 0;
}
什么错误?什么线?什么编译器?什么平台?如果您不提供信息,您希望我们如何帮助您? – 2010-09-17 12:00:08
@Alexandre Segfault – NullUserException 2010-09-17 12:04:44
“对于x,弃用从字符串常量到'char *'”的转换;而是使用一个char数组:char x [] = ... – slashmais 2010-09-17 12:19:19