动态分配的存储区,free后是否释放?
例如:
struct addr
{ char name[10];
struct addr *next;
}addrnode;
main()
{
struct addr *p;
p=malloc(sizeof(addrnode));
free(p);
}
请问free(p)释放的是p所向的内存吗?还是释放该指针?如果释放的是志向的内存,那么请问,free(p)后,该内存区(动态存贮区)的内容为0或NULL吗?或者不变?
如果调用p=malloc()函数后,如果不用free(p)释放,该动态存储区永远存在吗?
也就是说,该存储区不能再分配给其他的程序吗?也就是说,这部分的堆空间永远被锁定吗?