一段小程序的疑惑
int main(int argc, char* argv[])
{
char* s="you love me!";
char* p=s;
while(*p) p++;
while(p!=s)
{p--;
if(*p==' ')
{printf("%s",p+1);
*p='\0';
}
}
printf("%s",s);
return 0;
}
上面这段程序执行到*p='\0'就会报内存出错,而如果把char* s="you love me!"改成char s[20]="you love me!"就不会出错,为什么?