代码: 全选
#include <stdio.h>
int main()
{
//char p[]="hello,"; // 这样不会
//char m[]="im iblicf";
char *p="hello,";// 这样会 Segmentation fault
char *m="im iblicf";
char *t;
char * string_cat (char * dst, const char * src)
{
char * cp = dst;
while( *cp )
cp++; /* find end of dst */
while( *cp++ = *src++ ) ; /* Copy src to end of dst */
return( dst ); /* return dst */
}
t=string_cat(p,m);
printf("%s\n",t);
return 0;
}
可是字符数组也分配在栈上,应该也是连续分配的,它怎么就不崩溃呢 ?