gpt4 book ai didi

sprintf() 的输入和输出字符串可以相同吗?

转载 作者:太空狗 更新时间:2023-10-29 16:27:52 25 4
gpt4 key购买 nike

我过去在我的代码中多次使用过这种约定:

strcpy ( cTmpA, "hello" );
sprintf ( cTmpA, "%s world", cTmpA );

最近我将旧的 C 编译器切换到 Visual Studio 2005,发现上面的代码导致了一个乱码字符串。然后我想到,在其中一个输入与输出字符串匹配的情况下,sprintf() 的行为可能没有严格定义。

上面的代码对 K&R C 有效吗?如果没有,我如何在我的代码中找到对 sprintf() 进行此类调用的所有位置?

最佳答案

虽然它是有效的 K&R C,但您可能更想知道它是否是有效的 POSIX - 参见 sprintf Specification .我们阅读:

If copying takes place between objects that overlap as a result of a call to sprintf() or snprintf(), the results are undefined.

关于sprintf() 的输入和输出字符串可以相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1973572/

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