| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 438 人关注过本帖
标题:关于gets的问题
只看楼主 加入收藏
qingchen191
Rank: 2
等 级:论坛游民
帖 子:15
专家分:11
注 册:2009-8-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
关于gets的问题
1、
#include <stdio.h>
main()
{
    char *f;
    puts("How old are you?");
    gets(f);
    puts(f);
}
这个是可以正常执行的。
2、
#include <stdio.h>
main()
{
    char s[20],*f;
    printf("What's your name?\n");
    gets(s);
    puts(s);
    puts("How old are you?");
    gets(f);
    puts(f);
}
这个在执行gets(f);的时候出错
错误截图.rar (21.53 KB)

不知道为什么,jpg的截图发不上来,郁闷。
PS:我用的是VISTA HOME BASIC系统,TC2.0编译器。
请大家帮忙分析一下是怎么回事。多谢!


[ 本帖最后由 qingchen191 于 2009-8-28 00:23 编辑 ]
搜索更多相关主题的帖子: gets 
2009-08-28 00:05
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:20 
在gets(f)之前必须指定指针f的指向。。。
你可以重新指向s
f=s;
或者是重新建立一个char数组,然后再指向它。

也可以在数组s大小允许的范围内,指向它的某一个元素地址。

    puts("How old are you?");
    f = s+16;
    gets(f);
    puts(f);
^_^,这种方式不推荐。。。
2009-08-28 01:54
jammyzm
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:90
专家分:126
注 册:2008-12-1
收藏
得分:0 
C-FREE中不报错
2009-08-28 15:01
theamam
Rank: 1
等 级:新手上路
帖 子:17
专家分:2
注 册:2007-11-4
收藏
得分:0 
你没让指针f指向字符数组s,当然就出错啦!
2009-08-28 16:02
qingchen191
Rank: 2
等 级:论坛游民
帖 子:15
专家分:11
注 册:2009-8-4
收藏
得分:0 
以下是引用soler在2009-8-28 01:54的发言:
在gets(f)之前必须指定指针f的指向。。。
在gets(f)之前必须指定指针f的方向,这个是必须的吗?
指针f可以随便指向一个地方吗?
2009-08-28 23:18
liangonejzh
Rank: 2
等 级:论坛游民
帖 子:20
专家分:18
注 册:2009-7-30
收藏
得分:0 
指针没初始化吧
2009-08-29 08:36
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:0 
回复 5楼 qingchen191
你指针没初始化,,,就是所谓的野指针,这种操作很危险。^_^
指针是用来干什么的啊?
char * const p = s;
这样写了才不能修改指针指向。

2009-08-29 09:10
qingchen191
Rank: 2
等 级:论坛游民
帖 子:15
专家分:11
注 册:2009-8-4
收藏
得分:0 
了解,多谢!
2009-08-29 23:09
快速回复:关于gets的问题
数据加载中...
 
   



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

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