关于一个自编的字符串函数的问题
下面是源码#include <string.h>
char* my_strcpy_end(char *dst, char const *src);
int main()
{
char const str1[]="0123456789abvssd";
char *str2,*pi;
//printf("%s\n",str1);
//printf("%x\n",str2);
pi = my_strcpy_end( str2, str1 );
printf("%s\n",str2);
printf("%x\n",pi);
return 0;
}
char* my_strcpy_end(register char *dst, register char const *src)
{
while ( (*dst++=*src++) != '\0' );
return (dst-1);
}
库函数中的strcpy返回的指针是目标字符串的头指针,在这里my_strcpy_end函数返回尾指针
问题是:将测试的字符串设为“01234”之类较短的字符串时,可以输出结果,若改为“0123456789abvssd”之类长一点的字符串,有时得不到结果,有时有结果显示,但是最后会提示“程序遇到问题需要关闭”,不知道是什么原因?
编译环境是c-free 4.0