初学小菜鸟

刚刚学习c++,自学觉得好累啊,可能要走很多的弯路,没有办法。

今天照书敲了一段代码,其中就有一些问题,

上网查了一下才知道,是由于我使用vs平台的问题,

可能看的书是纯的c++,vc中所提供的CRT中提供了比原来更具有安全性的 strcpy_s 函数,所以在使用strcpy的时候

会给出警告,报出安全隐患。那么strcpy 和 strcpy_s到底有什么不同呢?

比如如下代码:

char[3] stringBuf ;

strcpy(stringBuf, "123456");    // 旧版

strcpy_s(stringBuf, "123456");   //新版 

我运行了一下,旧的版本下在运行后仍然会吧123456写入到溢出后的内存中,而报错并没有提示错误类型

新的版本在运行后直接中断并正确的报出的问题所在,Buffer is too small!

这样的方法更容易让我们发现错误的所在。

 

 

posted @ 2009-02-25 00:39  刘宇石  阅读(132)  评论(0编辑  收藏  举报