free()函数具体做了什么

来源:互联网 发布:galgame制作软件 编辑:程序博客网 时间:2024/04/26 15:43

这几天写的贪吃蛇,先是malloc了一个p指针,然后p与snake.tail指针相等了,即p=snake.tail。

结果free(p)过后,snake.tail里面的内容也被释放了。

该指针变为迷途指针。

总结:

1、free只是释放了malloc所申请的内存,并不改变指针的值;

2、由于指针所指向的内存已经被释放,所以其它代码有机会改写其中的内容,相当于该指针从此指向了自己无法控制的地方,也称为野指针或迷途指针;
3、为了避免失误,最好在free之后或者之前,将指针指向NULL。
0 0