c语言关于堆的问题

2024年11月28日 19:37
有2个网友回答
网友(1):

free后p指向的内存是释放状态。虽然这个指针仍指向这个内存,但是因为其被释放,很快会被其它malloc再分配到。值就会丢失,就是说内存不可靠了。

在使用free后,一定要对p进行设置为NULL,或0以表示这个指针不再是有效的。要使用需要再申请内存。

网友(2):

释放堆,只是将其内存还给系统,在没有使用的时候,系统并没有还原,所以再次调用,还是3.14
但是如果你在
free(p);
之后加一句 float*q =(float*)malloc(sizeof(float));
结果可能就不一样了