C语言如何将字符串输入指针数组里面?

这样为什么不行?... 这样为什么不行? 展开
 我来答
wind556
2014-11-26 · TA获得超过250个赞
知道小有建树答主
回答量:673
采纳率:50%
帮助的人:276万
展开全部

scanf("%s",)针对的是字符串 也就是char数组的首地址  你这么弄无非是想存10个字符串吧?你只有一个字符指针数组 都没分配空间  指定报错 如果你是想把字符串都存入一段连续的空间可以改为如下代码(唯一隐患是超长字符串引发的越界 此处不做处理)

char str[1000];
for(int i=0,j=0;j<10;j++)i+=scanf("%s",(str+i))+1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我渴望新生
推荐于2017-12-16 · 超过26用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:49.8万
展开全部
你必须分配内存给字符串,然后才能将地址赋给指针变量;这个时候你应该可以使用二维数组,如
char str[10][1000];对应的地址栏写成str + i 即可,或者使用动态内存分配,在scanf的上面加上一行:
str[i] = (char*)malloc( 1000*sizeof(char) );
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式