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