c - C中scanf和scanf_s的区别

标签 c visual-studio scanf c11 tr24731

虽然我的程序给出了所需的输出。有许多警告显示 scanf()不应该使用并尝试使用 scanf_s()反而。

此警告的可能原因?

所有使用 scanf 函数的程序都会发生这种情况。即使是简单的数字加法。

最佳答案

使用 scanf 时,如果您使用无限大小的输入,则使用某些格式参数可能会导致程序崩溃。 scanf_s 需要提供输出缓冲区的大小,从而限制缓冲区溢出的可能性(前提是您正确指定输出缓冲区大小)。

关于c - C中scanf和scanf_s的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24651064/

相关文章:

使用按位运算符比较 float

c - C语言输入

c++ - 带有 -isysroot 的 gcc 创建包含以等号 "="开头的包含路径并且编译失败

c# - 如何在 WPF 应用程序中捕获命令行参数?

c - 如何防止scanf导致C语言缓冲区溢出?

c - 尽管多次成功写入,但 Write() 仍导致 EBADF 失败

c# - 系统托盘中的 Winforms 通知图标重复

c# - 使用 Id 而不是 Context

c - 如何在C语言中将文本文件读取到结构数组中

c - If/else 语句仅适用于整数。