scanf与scanf_s的区别


1.scanf()不会检查输入边界,可能造成数据溢出。scanf_s()会进行边界检查。

_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,防止hacker利用原版的不安全性(漏洞)黑掉系统。

2.scanf的调用格式为:scanf("<格式化字符串>",<地址表>)。

 scanf_s()用于读取字符串时,必须提供一个数字以表明最多读取多少位字符,以防止溢出。

 scanf_s("%s" , buffer,128);//此处必须加上128,表示最多可以读取128位,不然运行会报错。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM