C语言 如何给字符指针数组赋值

voidmain(){char*p[5];char*d;inti,j;printf("输入5个城市\n");for(i=0;i<5;i++){gets(*(p[i]));... void main() { char *p[5]; char *d; int i,j; printf("输入5个城市\n"); for(i=0;i<5;i++) { gets(*(p[i])); } for(i=0;i<5;i++) { for(j=0;j<4-i;j++) { if(strcmp(p[j],p[j+1])>0) { d=p[j]; p[j]=p[j+1]; p[j+1]=d; } } } printf("按字母排列如下\n\n"); for(i=0;i<5;i++) { printf("%s\n",p[i]); } } 这是道输入5个城市 按字母顺序输出的题 后面都没问题,就是给字符指针数组赋值的时候总是报错,是不是这种赋值方法有误,请过路的朋友指点下~谢谢 展开
 我来答
召萍仰平绿
2020-06-11 · TA获得超过3926个赞
知道大有可为答主
回答量:3068
采纳率:33%
帮助的人:405万
展开全部
你那样只是定义了5个指针,并没有给每个指针分配相应的内存空间,当然会出错
gets函数的参数是一个字符指针,应该用gets(p[i]);
char
*p[5];
char
*d;
char
p1[5][20];
int
i,j;
printf("输入5个城市\n");
for(i=0;i<5;i++)
{
p[i]
=
p1[i];
gets(p[i]);
}
.......
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式