为什么这段代码运行之后会出现exception?
main()
{
int result = 0;
char *s = NULL;
s = (char*)calloc(50,sizeof(char) );
s = "hello ";
s[5] = '\0';//这里出问题,貌似不能这么赋值
free(s);
return 0;
}
---------------------------------------------
其实这个问题主要是这样影起的:
main()
{
int result = 0;
char *s = NULL;
s = (char*)calloc(50,sizeof(char) );
s = "hello ";
result = trim(s);
free(s);
return 0;
}
int trim( char s[] )
{
int n;
s[5] = '\0';
for( n = strlen(s)-1; n >= 0; n-- )
{
printf( "trim_1, n:%d s[n]:%c \n",n,s[n] );
if( s[n] != ' ' && s[n] != '\t' && s[n] != '\n' )
{
break;
}
}
s[n+1] = '\0';//这里出问题
return n;
}