| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 873 人关注过本帖
标题:狠简单的指针数组存储出错
只看楼主 加入收藏
笨女孩
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2011-7-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:16 
狠简单的指针数组存储出错
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
void sort(char *a[],int n);
int i;
char *name[3];
printf("please enter three name:");
for(i=0;i<3;i++)
gets(name[i]);   //这那里错了

求解 请问怎么错了?
gets(name[i]);   //这那里错了
要怎么改?
搜索更多相关主题的帖子: 存储 
2011-08-31 22:24
woai_kmust
Rank: 2
等 级:论坛游民
帖 子:29
专家分:41
注 册:2011-8-31
收藏
得分:0 
改不来啊。我用win-tc可以输,用Vc++6.0输完一个,再按回车就出错
2011-08-31 22:37
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
仅供参考: ……无语……坐等答案……

[ 本帖最后由 A13433758072 于 2011-9-1 06:58 编辑 ]

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-08-31 22:47
woai_kmust
Rank: 2
等 级:论坛游民
帖 子:29
专家分:41
注 册:2011-8-31
收藏
得分:0 
以下是引用A13433758072在2011-8-31 22:47:27的发言:

仅供参考: 不对,所以,战时,撤下
2011-08-31 22:57
笨女孩
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2011-7-13
收藏
得分:0 
回复 3楼 A13433758072
不行啊
2011-08-31 23:05
QQ346957135
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:148
专家分:658
注 册:2011-8-9
收藏
得分:0 
gets函数,其一般形式为gets(字符数组),其作用是从终端输入一个字符串到字符数组,注意是字符数组,如果给定的参数是字符指针就会出错。
这样是错误的:
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    char *str;
    gets(str);
    puts(str);
    return 0;
}

这样是正确的:
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    char str[100];
    gets(str);
    puts(str);
    return 0;
}


[ 本帖最后由 QQ346957135 于 2011-8-31 23:09 编辑 ]

A real warrior never quits.
2011-08-31 23:07
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
学习…
2011-08-31 23:58
jcw08120110
Rank: 8Rank: 8
来 自:南京
等 级:蝙蝠侠
帖 子:272
专家分:742
注 册:2009-6-8
收藏
得分:0 
恩我开始也困惑呢~ 学习 6楼 ~ 数组还是弱项!
原因还是指针指向的字符数组没有大小~ 所以错误;不过纠正你一个小细节,gets()的参数就是指针…数组名就可以等价于指针,它们的区别只是一个有空间一个没空间~

[ 本帖最后由 jcw08120110 于 2011-9-1 09:25 编辑 ]

君生我未生 我生君以老
2011-09-01 00:08
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
光有指针是不行的,要有内存来存放数据的。可以按下面这么写
game[i]=(char *)malloc(N);        //N 为一常数也可以从输入得到。  
gets(game[i]);
2011-09-01 00:15
liuyizhao117
Rank: 2
等 级:论坛游民
帖 子:12
专家分:27
注 册:2011-5-2
收藏
得分:5 
指针,先盖屋子,后住人.
2011-09-01 11:01
快速回复:狠简单的指针数组存储出错
数据加载中...
 
   



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

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