当前位置: 代码迷 >> C语言 >> 两段奇怪的程序,百思不得其解,请帮助
  详细解决方案

两段奇怪的程序,百思不得其解,请帮助

热度:714   发布时间:2006-12-23 21:13:59.0
两段奇怪的程序,百思不得其解,请帮助

程序一:
main()
{
char *pstr;
strcpy(pstr,"http://www.it315.org");
printf("pstr = %s\n",pstr);
}

以上程序可以运行, 但加入一个语句后,就运行出错了。

程序二:
main()
{
char *pstr;
strcpy(pstr,"http://www.it315.org");
printf("pstr = %s\n",pstr); /* 竟然显示 %s */
printf("pstr[1] = %c\n",pstr[1]); /*显示为t */
}

是字符串数组和字符串常量的区别吗?
请解答详细一点。

[此贴子已经被作者于2006-12-23 21:14:18编辑过]

搜索更多相关的解决方案: 百思不得其解  

----------------解决方案--------------------------------------------------------
以下是引用zzbgbclzy在2006-12-23 21:13:59的发言:

程序一:
main()
{
char *pstr;
strcpy(pstr,"http://www.it315.org");
printf("pstr = %s\n",pstr);
}

以上程序可以运行, 但加入一个语句后,就运行出错了。--什么语句说明白点

程序二:
main()
{
char *pstr;
strcpy(pstr,"http://www.it315.org");
printf("pstr = %s\n",pstr); /* 竟然显示 %s */--%c
printf("pstr[1] = %c\n",pstr[1]); /*显示为t */--s%
}

是字符串数组和字符串常量的区别吗?
请解答详细一点。


我试着改了一下


----------------解决方案--------------------------------------------------------
有没有听说过动态分配?

char *pstr = (char *)malloc(100 * sizeof(100));

----------------解决方案--------------------------------------------------------
没有啊~~
我运行了下
是对的~
----------------解决方案--------------------------------------------------------
根本就是没错啊
----------------解决方案--------------------------------------------------------
是我的运行环境有问题,谢谢以上各位了!!
----------------解决方案--------------------------------------------------------
误人误已啊,楼上(2,4,5)几位,明明是程序写错了
----------------解决方案--------------------------------------------------------
7楼的请指教,
----------------解决方案--------------------------------------------------------
以下是引用Knocker在2006-12-24 14:31:11的发言:
误人误已啊,楼上(2,4,5)几位,明明是程序写错了



错了吗?

请指教.....
----------------解决方案--------------------------------------------------------
楼上答错的朋友全部去看看动态分配的有关内容。
----------------解决方案--------------------------------------------------------

  相关解决方案