帮忙看下该怎么实现
那天在做数据结构实验时碰到个问题
将之简化为就是 我现在想输入一些字符串,比如说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 ");
}