strcat_s 和 strcat 的区别

他们的作用我不说你也知道是吧。
对于他们的区别,stract_s是VS2005及以后新增的具有更强"安全性"的CRT函数。这个安全性如何理解:

如:
char szBuf[3]={0};
1> strcat_s(szBuf,3,"kdfdfj");
2> strcat(szBuf,"kdfdfj");
对于这两个九,你仔细看就会发现他们有缓冲区溢出的问题.
而用第一个函数则不同,它会抛出一个异常。
但使用第二个函数的结果则不能确定,因为它可能会错误地改变了程序中其他部分的内存的数据,有可能不会抛出异常,但会导致程序数据错误,也可能由于非法内存访问抛出异常

这就是他们的区别,一个关于安全性的区别

你可能感兴趣的:(C/C++)