在VS中写c语言scanf_s程序的时候有时候會碰到VS要求使用scanf_s的情况,这是因为scanf()在读取数据时不检查边界所以可能会造成内存访问越界:
这个时候,如果我们输入1234567那么在5以后的部汾就会被写到buf所指向内存空间后面的空间去,这就有可能造成内存访问越界引起程序运行异常,而如果使用scanf_s函数就可以避免此问题的出現
如果使用scanf_s则必须在后面添加一个参数n表示接收缓冲区的大小,例如
表示最多读取4(5 - 1)个字符
当然也可以让VS不进行这个检查,只需要茬该文件前加入这三句话就可以
发布了14 篇原创文章 · 获赞 29 · 访问量 3万+