我有以下代码:
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");
然后我永远不会打印出来&#34; Buffer Overrun&#34;
那么,如何调试呢?
仅在启用优化(无调试模式)时发生seg错误
答案 0 :(得分:0)
你在某处有UB。 “在调试中工作,但不是发布”,或者相反,是一个巨大的未定义行为标志。
使用调试器检查所有参数:)