先上结论:scanf_s的参数需要输入长度参数
原因:因为scanf不检查读入的缓存区字符串长度,所以scanf会越界存储。所以标准委员会建议用scanf_s代替scanf。
这个长度,应是字符数组的长度-1,或者等于字符串大小。(来自论坛嗜元兽
的解答)
衍生问题
在网上搜贴和自己做的过程中我也有遇到空指针而出现的访问问题,空指针是指向NULL的指针,一般都是因为发生异常的代码处需要写入或者修改数据,作为NULL指针当然无法访问。
解决方案
malloc为指针分配一个空间。
先上结论:scanf_s的参数需要输入长度参数
原因:因为scanf不检查读入的缓存区字符串长度,所以scanf会越界存储。所以标准委员会建议用scanf_s代替scanf。
这个长度,应是字符数组的长度-1,或者等于字符串大小。(来自论坛嗜元兽
的解答)
衍生问题
在网上搜贴和自己做的过程中我也有遇到空指针而出现的访问问题,空指针是指向NULL的指针,一般都是因为发生异常的代码处需要写入或者修改数据,作为NULL指针当然无法访问。
解决方案
malloc为指针分配一个空间。
相关文章: