gpt4 book ai didi

c - 调试缓冲区溢出引起的段错误

转载 作者:行者123 更新时间:2023-11-30 17:02:44 25 4
gpt4 key购买 nike

我有以下代码:

if (destIndex < destLen && srcIndex < srcLen)
dest[destIndex++] = src[srcIndex++];

这段代码运行良好。

如果我删除 if,代码就会崩溃。

如果我运行以下代码

if (destIndex < destLen && srcIndex < srcLen)
dest[destIndex++] = src[srcIndex++];
else
fprintf(stderr, "Buffer Overrun\n");

然后我永远不会打印出“缓冲区溢出”

那么,如何调试呢?

段错误仅在打开优化时发生(无 Debug模式)

最佳答案

你在某个地方有UB。 “在调试中有效,但在发布中无效”,或者反过来,是一个巨大的未定义行为标志。

使用调试器检查所有参数:)

关于c - 调试缓冲区溢出引起的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36459275/

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