为什么调试会出现这个错误
代码:#include<stdio.h>
#include<string.h>
char * substr(char *str,int n)
{
unsigned char len=strlen(str);
for(;len>0;len--)
{
if(str[len-1]==' ')
str[len-1]=0;
}
for(;n>0;n--)
{
str+=(strlen(str)+1);
}
return str;
}
int main(void)
{
char *str1;
char *str="123 456 789";
*str1=substr(str,2);
printf("str1 =%s\n",*str1);
return 0;
}
调试
第一个for循环运行三次时,提示错误:
Thread 1 received signal SIGSEGV Segmentation fault
请问高手,如何解决?谢谢