Я недавно обнаружил следующую ошибку в моем приложении:
m_players[0].erase(plr); -- CRASHES HERE
m_players[1].erase(plr);
m_players
объявлено как:
set<PlayerPointer> m_players[2];
Visual Studio показывает, что это «0xC0000005: место записи нарушения прав доступа 0x0000000000000024.»
Компилятор: Visual Studio 2008.
Сборка: 000000014007AA3B mov rcx, qword ptr [this] (разбился)
Так что я предполагаю, что мы умираем из-за плохого «this», так как это первый доступ к этому в этой функции. Но так как я смотрел local / autos, это не плохой указатель.
Было бы неплохо получить подсказку.