首页 文章

递归函数偶尔会返回分段错误

提问于
浏览
0

我正在努力实现一种分而治之的算法,该算法找到彼此最接近的两个点以及它们之间的距离 . 我的最终解决方案找到了正确的答案(与使用蛮力相比),但大约1/3的时间会返回分段错误错误 . 我一直在努力解决这个问题几天,在这里和那里添加打印语句,但找不到问题 . 如果有人看了我的代码,我将不胜感激 .

2 回答

  • 2

    您的"divide"循环假定 XY 具有相同数量的元素 . 如果 Y 少于 X ,您将遇到未定义的行为,这可能是有趣的结果或崩溃 .

  • 0

    尝试更改向量的访问方法 . 向量下标运算符似乎在某些编译器/平台中具有一种非常的行为(至少从我的角度来看) . 我认为问题来自于它是一个链表,导致内存中不连续,但这只是猜测 . (编辑:std :: vector在内存中是连续的,问题是别的)尝试使用迭代器(轻松与 auto 关键字),例如:

    for (auto iter = Yprime.begin(); iter != Yprime.end(); iter++) {
        // Your code here
    }
    

    希望这适用于您的情况!

相关问题