| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7449 人关注过本帖
标题:定义一个指针字符串数组,然后输出,问题在哪儿?
只看楼主 加入收藏
xdreamlike
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2013-8-8
结帖率:100%
收藏
已结贴  问题点数:18 回复次数:12 
定义一个指针字符串数组,然后输出,问题在哪儿?
#include<stdio.h>

int main()
{
    char *a[5];
    int i;
    printf("please input char:\n");
    for(i=0;i<5;i++)
        scanf("%s",a+i);
    for(i=0;i<5;i++)
        printf("the char is:%s",a[i]);
    return 0;
}

麻烦大家帮忙看看,以上代码哪儿有问题,多谢。
搜索更多相关主题的帖子: please 字符串 
2013-08-18 17:28
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:3 
printf("the char is:%s\n",a+i);//a+i为指针的地址!a[i]相当于*(a+i),是一个字符!!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-08-18 19:37
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:3 
回复 楼主 xdreamlike
问题大了,没有分配空间

总有那身价贱的人给作业贴回复完整的代码
2013-08-18 20:08
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
收藏
得分:3 
回复 楼主 xdreamlike
问题主要在这句上:char *a[5];这句的意思是a是个元素为char指针的数组。
正确的声明应该是:char *a[5][20];
2013-08-18 20:49
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 

DO IT YOURSELF !
2013-08-18 20:55
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
一个比一个敢说

总有那身价贱的人给作业贴回复完整的代码
2013-08-18 20:56
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
呵呵  3楼王道

DO IT YOURSELF !
2013-08-18 20:59
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
收藏
得分:3 
这个问题你问对了,希望这次大家帮你解决以后,你能永远不在这样的问题上出错(估计有点难度)

要分清楚,你定义的是一个数组,但是数组里面是指针,指针的指向不定,即没有为指针分配空间
也就是说指针的值现在是随机值,空间也是随机的,会出现很严重的问题

数据是放在内存中的,内存是要分配的,指针只是一个指向该空间的指向

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-08-19 09:58
艺术的生活
Rank: 2
等 级:论坛游民
帖 子:51
专家分:77
注 册:2013-7-28
收藏
得分:3 
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    char *a[5];
    int i ;
   
    for( i = 0 ; i <5 ; i++ )
    {
       a[i] = (char *)malloc(sizeof(char)) ;  
    }
    for(i=0;i<5;i++)
        scanf("%s",a[i]);
        
     printf("\n");   
      
     for(i=0;i<5;i++)
          printf("%s\n",a[i]);
   
    return 0;      
}

[ 本帖最后由 艺术的生活 于 2013-8-19 11:19 编辑 ]
2013-08-19 10:57
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:3 
回复 7楼 wp231957
我还大胆的说来着,看着这句话我就不想打字了。。。
2013-08-19 11:02
快速回复:定义一个指针字符串数组,然后输出,问题在哪儿?
数据加载中...
 
   



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

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