C++关于strcpy等函数的安全版本
如下程序:
#include <iostream> using namespace std; int main() { char ch1[10]; strcpy(ch1,"123456"); }
在VS2012上面编译时会报错:
error C4996: ‘strcpy‘: This function or variable may be unsafe. Consider using strcpy_s instead.
在VS2010中,有众多的系统函数名都追加了_s,比如scanf_s(),strcmp_s()等等。_s表示这个方法是安全的 (safe),原来的函数对字符串的长是忽略的,可能溢出,这些加_s的方法对长度进行判断,如果目标字符装不下的话是不会进行不复制的。
这就是出现_S安全版本的原因
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。