gpt4 book ai didi

c - 没有格式说明符的 snprintf()?

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:57 25 4
gpt4 key购买 nike

我正在使用 snprintf() 编写这样的代码:

char myId[10] = "id123";

char duplicateId[10] = "";

snprintf(duplicateId, 10, myId);

如您所见,我没有明确指定格式说明符 %s

我是否需要在上面的 snprintf() 语句中明确指定格式说明符,如 snprintf(duplicateId, 10, "%s", myId);

最佳答案

不,从技术上讲,您不必这样做。但这样做是更好的做法,因为如果没有常量格式字符串,您的格式字符串仍然可以修改,因此您的代码将更容易受到格式字符串攻击。

啊,还使用 ​​sizeof(duplicateId) 而不是常量 10 - 也是出于安全原因(为了避免将来在更改大小时发生缓冲区溢出sprintf 的输出缓冲区)。

关于c - 没有格式说明符的 snprintf()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12172306/

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