以下代码:
_CrtCheckMemory();
vector<Vector3> samples = PoissonDisk::generate_poisson(m_resX-1, m_resY-1, minDist, 30, m_samples);
_CrtCheckMemory();
int s = samples.size();
调试器陷入第二个_CrtCheckMemory()中的heapcheck函数,告诉我堆有问题 - 所以我的假设是我的generate_poisson函数搞得一团糟。 但是 - 如果我添加一个_CrtCheckMemory();在返回之前直接在generate_poisson函数的末尾调用,然后调试器仍然像以前一样陷在同一行,而不是新添加的_CrtCheckMemory()
这意味着什么?
谢谢!
//编辑: 可能是另一个线程搞乱了堆,还是_CrtCheckMemory()只检查当前线程的堆?
答案 0 :(得分:0)
可能意味着你的“Vector3”课程真是一团糟。检查它的构造函数。
答案 1 :(得分:0)
答案 2 :(得分:0)
或者在PoissonDisk :: generate_poisson函数中,当范围发生变化(函数结束)时,某些内容已被删除。