я управлял небольшой гр программы:памяти коррупции
#include<stdio.h>
int main()
{
char *p;
p = (char *)malloc(10);
free(p);
free(p);
free(p);
printf("\npointer is freed!!\n");
}
в основном я освободив память, которая уже освобождена. Я думаю, это должно привести к дампу ядра! Это не так?
но печатает
pointer is freed!!
я не прав, где некоторые?
Хороший способ предотвратить это: 'free (ptr); ptr = NULL; ', поскольку' free (NULL); 'is no-op. Кроме того, в примере OP 'malloc' мог возвращать' NULL'. – 2012-01-14 14:48:01