scanf与scanf_s的区别

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

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

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

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

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

猜你喜欢

转载自www.cnblogs.com/syq816/p/12317909.html