free should be able to free as it maintains a table from
where it can start freeing the memory. It is OS related issue.
There is no way in C where we can ensure that the particular
memory is freed a even after free we can access the variable
for some time. In Java, we have a memory deallocator.  |