Я попытался освободить 2D массива в C с использованием Visual Studio 2005 & 2008:Проблемы с освободив 2D-массив в C
void Free_C(int **Cmat)
{
int i;
for (i=0;i<ROW;i++)
free(Cmat[i]);
free(Cmat);
}
Когда добраться до второй свободной линии его падения с высказыванием ошибки:
HEAP CURRUPTION DETECTED:...CRT detected that application wrote to memory after end of heap
Я выделил массив так:
C=malloc(ROW*sizeof(int*));
for (i=0;i<RC;i++)
C[i]=malloc(COL*sizeof(int));
Я также попробовал, что с calloc
, но это приводит к той же ошибке.
Как вы выделить этот массив? Каждый 'free' должен соответствовать' malloc', который вы делали ранее. – sth
Можете ли вы показать код, который вы использовали для выделения массива в первую очередь? – JaredPar
На это нельзя ответить, не видя, как вы выделили массив. –