Отладка повреждения памяти

Ранее я столкнулся с проблемой динамической памяти в C (visual studio). У меня была более-менее рабочая программа, которая выдавала ошибку времени выполнения при освобождении одного из буферов.Это было явное повреждение памяти, программа переписала конец буфера.

Моя проблема в том, что поиск занял очень много времени. Ошибка была выброшена после повреждения, и мне пришлось вручную отлаживать весь запуск, чтобы найти, когда конец буфера перезаписывается.

Есть ли какой-нибудь инструмент\способ помочь в отслеживании этой проблемы? если бы программа вылетала сразу, я бы нашел проблему намного быстрее...

пример проблемы:

int *pNum = malloc(10 * sizeof(int));

//                 ||
//                 \/    
for(int i = 0; i < 13; i++)
{
pNum[i] = 3;
}

// error....
free(pNum);
6
задан AK_ 10 June 2012 в 11:12
поделиться