首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

帮忙看下该如何实现

2012-02-08 
帮忙看下该怎么实现那天在做数据结构实验时碰到个问题将之简化为就是我现在想输入一些字符串,比如说aabbcc

帮忙看下该怎么实现
那天在做数据结构实验时碰到个问题
将之简化为就是     我现在想输入一些字符串,比如说aa       bb     cc     dd等,再把他输出来,我知道用一个二维数组是可以的,但是我想用数组指针
以下是代码
#include <stdio.h>
main()
{
      int   *a[5];
      int   i;
      for(i=0;i <5;i++)
        scanf( "%s ",&a[i]);
    for(i=0;i <5;i++)
      printf( "%s ",a[i]);
}
编译能通过
可是运行的结果总是错误的
麻烦各位给看下,知道下,小弟在这谢了~~
}

[解决办法]
指针数组只是分配了指针的内存空间,存储字符串的内存并没有分配,需要为其分配内存然后赋值给指针数组中的元素
#define STR_LEN 100

#include <stdio.h>
main()
{
char *a[5];
int i;

for(i=0; i <5; i++)
a[i] = (char*)malloc(STR_LEN);
for(i=0; i <5; i++)
scanf( "%s ", a[i]);
for(i=0; i <5; i++)
printf( "%s\n ", a[i]);
for(i=0; i <5; i++)
free(a[i]);

system( "PAUSE ");
}

热点排行