猿问
C++中字符串拷贝
第16行,用VS2015一直报错
根据老师所给,代码是一样的。
错误说是这个,求大神解答
慕哥8183350
浏览 1506
回答 2
2回答
onemoo
这样的话,我就能够确定问题所在了。 基本上你猜得也没错,就是 IDE 的锅。具体原因是这样的:strcpy 这函数有安全隐患。因为它无法对拷贝字符的个数进行检查,所以第一个参数必须足够大,否则会发生“溢出”,导致个各种问题。 我看到你用了一个足够大的数组(char[100])做第一个参数,我想你是明白这一点的。那么 VC++ 这个 IDE 就认为这样的函数不安全,所以自作主张地增加了一个“安全版”的 strcpy_s 函数(它会对拷贝个数作限制)。不仅如此 VC++ 还默认把使用 strcpy 当作错误,这导致了你遇到的报错。 如果你不想让 VC++ 自作聪明地把这个视为错误的话,可以定义错误提示中的说的那个宏,这可以关闭此项错误检查。一开始我想让你试试修改头文件是因为:你知道 strcpy 是沿袭自 C 的,C 标准确实是因为安全原因而在 C11 中弃用了 strcpy,加入了 strcpy_s 函数。 我看到你用的是 C 版本的头文件,担心是这样引起 IDE 报错的。可你用了 cstring 还有错误,这就不应该了。这个 strcpy 函数是 C++ 标准库中的合法成员,IDE 不应该自作主张地弃用它(而且还是默认弃用)。不过看起来 VC++ 就是做了这样多余的事。总之,就是 IDE 的锅...
0
0
1
随时随地看视频
慕课网APP
相关分类
C++
typedef入门问题
1 回答
C
typedef入门问题
1 回答
我要回答