Отладка повреждения памяти
Ранее я столкнулся с проблемой динамической памяти в C (visual studio). У меня была более или менее работающая программа, которая выдавала ошибку во время выполнения при освобождении одного из буферов. Это было явное повреждение памяти, программа перезаписывала конец буфера.
Моя проблема в том, что это было очень много времени, чтобы выследить. После сбоя ошибка была сброшена, и мне пришлось вручную отлаживать весь прогон, чтобы определить, когда конец буфера перезаписан.
Есть ли какой-нибудь инструмент \ способ помочь отследить эту проблему? если бы программа вылетела сразу, я бы нашел проблему намного быстрее ...
пример вопроса:
int *pNum = malloc(10 * sizeof(int));
// ||
// \/
for(int i = 0; i < 13; i++)
{
pNum[i] = 3;
}
// error....
free(pNum);