从BUG中学习
0赞
发表于 12/18/2011 1:53:21 PM
阅读(1922)
下面这段代码是从网上找到的,但是编译运行的时候发现问题了。
因为char str1[]初始化字符长度比char str2[]长,如果从str1拷贝到str2,肯定有问题的哦。应该有内存溢出的问题。
#include "stdio.h"
main()
{
char *ch(char *,char *);
char str1[]="I am glad to meet you!";
char str2[]="Welcom to study C!";
printf("%s",ch(str1,str2));
}
char *ch(char *str1,char *str2)
{
int i;
char *p;
p=str2
if(*str2==NULL) exit(-1);
do
{
*str2=*str1;
str1++;
str2++;
}while(*str1!=NULL);
return(p);
}
