以下代码:
_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 函数的末尾直接调用,就在 return 之前,那么调试器仍然像以前一样在同一行捕获,而不是在新添加的 _CrtCheckMemory()
这意味着什么?
谢谢!
//edit: 是否有可能是另一个线程搞砸了堆,或者 _CrtCheckMemory() 是否只检查当前线程的堆?