gpt4 book ai didi

c++ - sprintf_s 导致崩溃

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

我遇到了问题。示例:

try
{
char strMes[6];
sprintf_s(strMes, sizeof(strMes), "%s", "012345678");
printf(strMes);
}
catch(...)
{
printf("Wrong\n");
}

在调试环境中,它会导致调试器出现“缓冲区太小”的消息。

在发布环境中导致崩溃。

我尝试将 try-catch block 替换为 __try-__except(EXCEPTION_EXECUTE_HANDLER) block ,但我得到了相同的行为。

我有大约 1K 次调用 sprintf_s 函数,所以将 sprintf_s 替换为 _snprintf_s 对我来说不是选项。 (见 sprintf_s with a buffer too small )

请帮忙!

最佳答案

首先,我认为您应该使用snprintf 而不是sprintf_s

其次,有一个 invalid paramater handler对于被调用的 CRT。尝试设置它。

关于c++ - sprintf_s 导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6972498/

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