gpt4 book ai didi

c++ - strcpy 是否等同于 strcpy_s

转载 作者:行者123 更新时间:2023-11-27 23:53:09 24 4
gpt4 key购买 nike

我想知道我是否可以安全地替换此处定义的 strcpy_s https://msdn.microsoft.com/en-us/library/td1esda9.aspx - (有两个参数的)在这里定义了 strcpy http://en.cppreference.com/w/c/string/byte/strcpy - (第一个)。如果不是,那么我可以用来替换 strcpy_s 的最接近的 strcpy 版本是什么?

最佳答案

添加了 C11 标准 bounds-checked functions包括 strcpy_s() .所以如果你担心可移植性,只要你有一个兼容 C11 的编译器就可以了。请注意,C11 标准的“约束处理程序”与 Microsoft CRT 的“无效参数处理程序”略有不同,因此如果您要安装自定义处理程序,可能需要进行一些调整。

至于完全替换它,不,你不能安全地用 strcpy() 替换它,原因应该很明显:strcpy() 不是边界-检查。您要么需要使用 strlen() 进行自己的边界检查,要么使用 strncpy()但请注意 strncpy() 行为不同(具体来说,如果源字符串太大而不适合目标,目标缓冲区将不会以 null 结尾)。

关于c++ - strcpy 是否等同于 strcpy_s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44766913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com