出现此错误的原因一般是
比如:
xxx::iterator it = ....;
// if (it != xxx.end())
it->xxx = xxx; //如果没有迭代器为空的判断,直接修改内容可能会出现上述错误。
又比如:
http://www.codeproject.com/Questions/441867/Encountered-an-improper-argument
// nItem为-1的时候,报上述错误
m_ListCtrl.SetItemText(nItem, 1, Item[numItems]);
抑或是:
解决了,是链表处理的时候没做必要的判断。
综上:主要是判断逻辑不完善,导致访问不存在的索引导致的错误,因此我们编码的时候需要注意防范。