gpt4 book ai didi

c++ - `snprintf_s` 错误的安全感

转载 作者:IT老高 更新时间:2023-10-28 21:42:43 24 4
gpt4 key购买 nike

MSVC 的“安全”sprintf 函数有一个“知道”目标缓冲区大小的模板版本。但是,这段代码在 bytes...

结束后愉快地在堆栈上绘制了 567890
char bytes[5];
_snprintf_s( bytes, _TRUNCATE, "%s", "1234567890" );

知道我做错了什么,或者这是一个已知的错误吗?

(我在 VS2005 中工作 - 2008 年或 2010 年没有测试)

最佳答案

确实是 a bug in Visual C++ 2005 (我无法访问该链接;Google also has it cached)。

我能够在 Visual C++ 2005 中重现该问题。在 Visual C++ 2008 和 2010 中,字符串被正确截断(bytes 包含 1234\0)并且 -1 按预期返回。

关于c++ - `snprintf_s` 错误的安全感,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2738260/

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