C优化中断算法

And*_*edd 0 c optimization gcc for-loop

我正在编写一个包含4个嵌套for循环的算法.问题是在每个级别更新指针.最里面的循环只使用其中一个指针.该算法执行复杂的计数.当我包含一个记录索引组合和计数结果的调试语句时,我得到了正确的答案.省略debugging语句时,计数不正确.该程序使用gcc上的-O3选项进行编译.为什么会这样?

Mat*_*att 6

在责备优化器之前,总是将代码放在valgrind,Purify等之类的代码中.特别是在指责与指针有关的事情时.

这并不是说优化器没有被破坏,但更有可能的是,它就是你.我曾经在各种C++编译器上工作过,看过我的seg故障,这些故障只发生在优化的代码中.很多时候,人们做的事情就是在为字符串分配空间等时忘记计算\ 0.当程序使用不同的-O设置运行时,在这一点上运气就好了.

另外,重要的问题是:你在处理受限制的指针吗?