问个比较初级的问题,自己写的字符串复制函数,总是编译过,运行不过
程序代码:
#include <stdio.h>
int str_cpy(char * from, char * to)
{
int i = 0;
while((*(from+i)) != '\0'){
printf("%c", *(from+i));
*(to + i) = *(from + i);
i++;
}
//*(to + i) = '\0';
return i;
}
main()
{
char * str1 = "I love";
char * str2;
str_cpy(str1, str2);
getch();
}
我在网上查了很多相关的例子,似乎都和我的代码差不多,为什么我始终运行不过呢?
平台:windows xp sp2 + dev-C++
----------------解决方案--------------------------------------------------------
/*没有分配内存 主函数这样改动一下就可以了*/
main()
{
char * str1 = "I love";
char *str2,s[20];
str2=s;
str_cpy(str1, str2);
getch();
}
----------------解决方案--------------------------------------------------------
str_cpy(str1,str2)
想把str1指得串复制到str2指得串中
可str2指向得空间不确定,并未初始化
在下愚见,望赐教
----------------解决方案--------------------------------------------------------
谢谢,正是这个问题,我修改了代码
str2 = malloc(strlen(str1));
已经不报错了,但是还不对
我又吧上面注释掉的 //*(to + i) = '\0';加了进去
现在完全正确了
非常感谢
----------------解决方案--------------------------------------------------------