| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 799 人关注过本帖
标题:一个字符串的问题
只看楼主 加入收藏
维c
Rank: 1
等 级:新手上路
帖 子:202
专家分:0
注 册:2007-8-13
收藏
 问题点数:0 回复次数:19 
一个字符串的问题

#include<stdio.h>
int main(void)
{
char *s;


scanf ("%s",s);
printf ("%s",s);
getch();
return 0;
}

很简单的字符串输入输出
为什么在DEV-C++里运行输入后就显示程序错误
而WIN-TC里则可以运行....
想不通...请教

搜索更多相关主题的帖子: 字符 
2007-10-30 18:20
aoaoaoao
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-5-14
收藏
得分:0 

s 的值因为是运行的时候才在栈中临时分配的,其值是不确定的.

虚拟86模式和保护模式下对内存的访问和保护是不一样的,保护模式下要严格多,对不允许读或写的地址空间进行读或写操作会引起通用保护异常

2007-10-30 19:48
维c
Rank: 1
等 级:新手上路
帖 子:202
专家分:0
注 册:2007-8-13
收藏
得分:0 
哦。。。谢谢。。
那应该怎样使用?

[此贴子已经被作者于2007-10-30 20:47:51编辑过]


花开花落
不愁不惑
http://hi.baidu.com/vitaminic
2007-10-30 20:47
jxt598598
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-6-13
收藏
得分:0 
是不是应该printf ("%s",*s)?

qq:304742297
2007-10-30 21:05
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
LS这样更错````

而WIN-TC里则可以运行....``这说明了WIN-TC的检查错误能力不好```

我的意见是 先定义一个字符数组s[]``再scanf("%s",s);




女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-10-30 21:09
jxt598598
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-6-13
收藏
得分:0 
为什么?

qq:304742297
2007-10-30 21:15
chmlqw
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-10-11
收藏
得分:0 
回复:(jxt598598)为什么?[em09]
因为定义数组,就相当于开辟了一个内存
如果是指针,则由于指针没有初始化,所以指针指向的地方可能是某些重要地方,这样使用指针是很危险的
你可以用 char *s = (char *)malloc(sizeof(char));
2007-10-30 21:19
jxt598598
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-6-13
收藏
得分:0 

qq:304742297
2007-10-30 21:23
维c
Rank: 1
等 级:新手上路
帖 子:202
专家分:0
注 册:2007-8-13
收藏
得分:0 
谢谢7楼。。。

花开花落
不愁不惑
http://hi.baidu.com/vitaminic
2007-10-31 12:06
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
没有分配空间,输入的字符串放哪?
可以这样:
char *s;
s=malloc(10);
或者定义个数组char s[10];
2007-10-31 14:06
快速回复:一个字符串的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017528 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved