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

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个城市 按字母顺序输出的题 后面都没问题,就是给字符指针数组赋值的时候总是报错,是不是这种赋值方法有误,请过路的朋友指点下~谢谢

你那样只是定义了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]);
}
.......
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜