在启动时,我的应用程序将在大约 %50 的时间内崩溃,并在以下代码行出现分段错误:
float** temp = new float*[map_size];
map_size 的值为 513。
在调试模式下永远不会出现这种糟糕的情况。该应用程序现在相当大,有 10,000 行代码,并且有多个线程在运行,所以我怀疑发布任何其他代码是否有用。(我不确定要发布什么)
由于这行代码相当简单,我猜我的错误在其他地方。我最好的猜测是我的程序在其他地方超出了分配的内存,然后当我偶尔尝试分配更多内存时,它会发生冲突并导致错误。这是可能的情况吗?
什么样的行为会导致内存分配出现分段错误?以及如何缩小代码中发生这种情况的范围?