求助AfxMessageBox("hello")调用时出现的奇怪问题
小弟初涉MFC程序,
在一个MFC程序中有一个AfxMessageBox("hello")调用时出错,定位到
..\VC98\MFC\SRC\MAP_PP.CPP文件,错误出在红色代码处(如下),此时m_nHashTableSize为:2576980378,nHash为131186.应该是数组越界了,但不知道问题出在哪,不知如何修改。
请高手指点一下,该如何查错排错
void* CMapPtrToPtr::GetValueAt(void* key) const
// find value (or return NULL -- NULL values not different as a result)
{
if (m_pHashTable == NULL)
return NULL;
UINT nHash = HashKey(key) % m_nHashTableSize;
// see if it exists
CAssoc* pAssoc;
for (pAssoc = m_pHashTable[nHash]; pAssoc != NULL; pAssoc = pAssoc->pNext) {
if (pAssoc->key == key)
return pAssoc->value;
}
return NULL;
}