编程实现用scanf读取一个字符串,然后打印出来。
char department[256];
scanf("%s",department);
printf("%s\n",department);
这个方法就能实现,而使用下面的指针方法就会出现报错(段错误 (核心已转储)
)。
char *department=Null;
scanf("%s",department);
printf("%s\n",department);
想问问为什么。
我的理解是前一种方法是事先申请了256的空间,而后者没有申请空间会导致溢出。
那么如果我不确定输入字符串长度的时候,该怎么处理呢?
scanf字符串的问题求解
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答
- 小灸舞 2016-03-29 02:38关注
给字符串指针赋值 你要事先给指针分配空间才行。指针只是个地址,你要往指针所指的地址里存放内容,就必须先给指针分配空间
如果是VS的话可以试试用scanf_s本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报