У меня есть код в MS VC++ 6.0, который я отлаживаю. По какой-то причине в этот определенный момент, когда я пытаюсь удалить некоторую динамически выделенную память, она ломается, и я получаю всплывающее окно с сообщением «Точка останова пользователя вызвана из кода в бла-бла».., затем всплывает окно дизассемблирования, и я видеть
*memory address* int 3
Странно то, что НИГДЕ в коде, где я вызываю ассемблерную инструкцию, подобную этой (я думаю, что asm int 3 — это команда аппаратного прерывания для x86?)..
Что может быть причиной этого?
РЕДАКТИРОВАТЬ: ОТВЕТ: Мой код «уходил с конца» массива, но только в местах, отмеченных отладкой Visual Studio с 0xFDFDFDFD, который называется забором NoMan'sLand. Я думаю, что его также называют Off-by- одна ошибка. Этот массив не был связан с точкой, где я освобождал память, когда происходила ошибка. Что затрудняло обнаружение.. :(