Difficulty understanding behavior of free()
- by Rasmi Ranjan Nayak
int main()
{
int *ptr, **ptr1;
ptr = (int*)malloc(sizeof(int));
ptr1 = (int**)malloc(sizeof(int));
free(ptr);
*ptr = 12345;
ptr1 = &ptr;
//free(ptr);
//**ptr1 = 23456;
printf("%d \n", **ptr1);
system("pause");
return 0;
}
How does *ptr store the value 12345, when the memory has already been freed? So, now ptr should be pointing to garbage.
Why is this happening?