初学者的一个问题,关于Segmentation fault错误
按道理,我应该可以修改字符串指针所指向的字符,代码如下:#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void strappend(register char *s, size_t len, char fill)
{
register char *endpos;
endpos = s+len;
while (*s++);
s--;
while (s<endpos) *(s++) = fill;
*(endpos) = '\0';
} /* strappend */
int main()
{
char *s1 ="abbccdfdcdbbdcd";
printf("s1=%s\n",s1);
strappend(s1,10,'f');
printf("s1=%s\n",s1);
return 0;
}
我用gdb跟踪一下,出在*(endpos) = '\0'.
望大家解答一下,谢谢了。