递归函数偶尔会返回分段错误
Recursive function occasionally returns a segmentation fault
我正在实现一个分治算法,它可以找到最接近彼此的两个点以及它们之间的距离。我的最终解决方案找到了正确的答案(与使用暴力相比),但大约1/3的时间会返回分割错误。我一直在努力解决这个问题几天了,现在,在这里和那里添加打印语句,但找不到这个问题。如果有人能看一下我的代码,我会很感激的。
你的"divide"循环假设X
和Y
具有相同数量的元素。如果Y
少于X
,您将遇到未定义的行为,这可能是有趣的结果或崩溃。
尝试更改向量的访问方法。向量下标操作符似乎在一些编译器/平台上有一个不稳定的行为(至少从我的角度来看)。我认为这个问题来自于它是一个链表,导致在内存中是非连续的,但这只是一个猜测。 (EDIT: std::vector在内存中是连续的,问题是别的)尝试使用迭代器代替(使用auto
关键字容易),例如:
for (auto iter = Yprime.begin(); iter != Yprime.end(); iter++) {
// Your code here
}
希望这对你的情况有效!
相关文章:
- 在某些循环内使用vector.push_back时出现分段错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 当我的阵列太大时出现分段错误
- 分段错误当我试图运行程序时出错
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 尝试使用集合函数时出现分段错误
- 我无法缩小此分段错误的原因
- g++的分段错误(在NaN上使用to_string两次时)
- 我是如何在这段代码中出现分段错误的
- 创建结构的数组时遇到分段错误
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 在 c++ 中实现 Trie 时出现分段错误
- 为什么 fstream 在打开带有格式的文件时会导致分段错误?
- 为什么我遇到分段错误?
- 动态类的分段错误(家庭作业问题)
- 分段错误 - 读取初始化指针的数组
- 如何摆脱C ++中的分段错误错误?
- 使用 CTYPE 时出现分段错误
- 为什么代码给出分段错误?