今天遇到一诡异的Bug,在某段代码之后,只要一执行vector的push_back函数,就报出异常——std::bad_alloc。
bad_alloc?这一般是new申请内存不足而扔出的异常么,内存耗光?绝对不可能。
折腾了很久,最后发现的错误根源是如此的愚蠢。
对于类的一个成员变量 QuadNode *m_pChild[4],我对它的初始化居然是这样的:
ZeroMemory( m_pChild, sizeof( QuadNode ) * 4 );
很显然,sizeof( QuadNode )绝对是大错特错,因为m_pChild是一个指针数组,而不是QuadNode的数组。
其实这个错误不值得拿出来一说,只不过是Bug所表现出来的症状有些奇特,所以留文以作警示。
Recent Comments