*写一个函数strcpy(s,t),把字符串t复制到字符串s中. */ #include <stdio.h> #include <string.h> main() {

下面程序我运行时出现错误,但检查程序却没有错误,输入字符串后错误,老师用的编译器却能通过,我搞不懂,帮忙分析是程序的问题还是编译器的问题,我用的是Dev-C++4。
/*写一个函数strcpy(s,t),把字符串t复制到字符串s中. */
#include <stdio.h>
#include <string.h>
main()
{
char *str1,*str2;
printf("Please input str1 and str2:\n");
scanf("%s%s",str1,str2);
strcpy(str1,str2);
printf("str1=%s\nstr2=%s\n",str1,str2);
system("PAUSE");
}
strcpy(s,t)
char *s,*t;
{
while(*s++=*t++);
}

程序错误,使用了野指针!!!
str和str都未初始化怎么能使用呢?
可以改为
char str1[100],str2[100];
或者动态分配内存追问

这个问题就是指针这节课程的题,问题在scanf("%s%s",str1,str2);
这里,老师的编译器可以编译通过,我的输入字符串后编译错误。

追答

你们老师用的什么编译器哦?都违反C语言规范?
估计你不是这个错误,而且你为什么不用VC++6.0呢。
很规范,很经典的编译器,实现了很多标准。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-16
就是 前面指针未初始化 后面 赋值才错误啊

你怎么头痛医头脚痛医脚啊

Warning: Invalid argument supplied for foreach() in /www/wwwroot/www.t2y.org3v3b34/skin/templets/default/contents.html on line 47
相似回答