如果两个指针都指向同一内存,用free释放其中的一个指针后,另一个指针还能引用这个内存里的数据吗???

2024-12-03 21:18:02
推荐回答(5个)
回答1:

free的实质是将这段内存标记为可再分配,但是里面的数据没有被清空,所以如果你用另一个指针再次调用还能够识别出刚刚的数据,但存在很大的危险性,建议释放时2个指针都指向NULL

回答2:

可能能用,可能不能用,你要知道free释放了内存块之后,原指针值肯定会出错,但是C允许读取非法内存,可能存在你能继续访问的现象(我遇过),不过,最好不要让这种情况发生,毕竟指针没操纵好,会使你的程序变得极为脆弱。

回答3:

不能用了,而且这个没释放的指针不能在free了,直接等于个null就行了。

回答4:

不能,另一个指针变成了野指针。

回答5:

不能,那是个野指针了,不能使用!