一道简单的C语言二级指针题,求各位大佬帮忙看一下哪里错了,输不出结果。

#include<stdio.h>intmain(){intx;scanf("%d",&x);char*a[x]={0};char**p;for(inti=0;i<x;i... #include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
char *a[x]={0};
char **p;
for(int i=0;i<x;i++)
{
scanf("%s",&(*a[i]));
}
for(int i=0;i<x;i++)
{
p=a+i;
printf("%s\n",*p);
}
return 0;
}
展开
 我来答
帐号已注销
2018-12-18 · 超过14用户采纳过TA的回答
知道答主
回答量:37
采纳率:36%
帮助的人:18.3万
展开全部
scanf("%d",&x);
char *a[x]={0};
c语言不支持这样定义不定长数组。
可用以下方法
scanf("%d", &m);
int *p= (int*)malloc(m*(sizeof(int)));;
memset(p, 0, m);
microroom
科技发烧友

2018-12-18 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1530万
展开全部
#define Len 256

#include<stdio.h>
#include<stdlib.h>

int main()
{
int i,x;
char **a,*p;

scanf("%d",&x);
a=(char**)calloc(x,sizeof(char*));
for(i=0;i<x;i++)
{
a[i]=(char*)malloc(Len);
scanf("%s",a[i]);
}
for(i=0;i<x;i++)
{
p=*(a+i);
printf("%s\n",p);
free(p);
}
free(a);
return 0;
}
追答

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcy990718
2018-12-18 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:66%
帮助的人:1652万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式