C 语言中 free() 函数简单分析

  又是一个睡不着的夜晚,现在是凌晨03:16,不知道是不是感冒的原因,头脑并不是清醒,但是就是睡不着。摸着黑打开电脑,洗了杯子抓了点茶叶,然后打开饮水机电源。舍友们都睡着了,我戴着耳机听着轻音乐,也能听见自己敲击键盘的声音。下午做了阿里巴巴的在线笔试题,所以晚上心情不是特别好,就玩了几个小时的游戏。最近一直想的都是毕业后怎么生活、怎么工作,越想越不知道该怎么办。我也知道有可能是自己想的太多了,毕竟还没到那一步。但是自己对自己太不放心了,发现自己大学学的东西太少了,专业知识根本经不起别人的反驳。我一直告诉自己努力,但是却感觉自己并没有取得多大的成绩。我知道每个人的能力有限,自己智商并不高,有时也会发现智商太低,恨铁不成钢。有的人肯定无法体会到这种感觉,因为只有我这种从小地方出来的人,没啥钱,没背景,一无所有的才能体会到。我就是对所有事不服,别人有的我也要靠自己的努力得到,只要我想要。所以我很累,每天活的。

  我发现我写的东西完全无厘头,想到啥就写啥。我要继续努力,学习好专业知识,不管结果怎么样,每天都努力学习就行了。

  我希望校招能找到好工作,而且可以顺利的去上海。

  码了这么多字,现在正式进入主题......

这是测试用例:

输出结果:

现在猜想去除注释后的输出:

free() 函数释放掉动态为指针P分配的空间,也就是地址为0x9f1900B的空间返回给操作系统了,那么#3#找不到地址,会报错。#4#中输出不变。

检验:

输出结果:

结果 #3#并没有报错,而是没有输出,我觉得这应该取决于操作系统对这种异常的处理方式,由操作系统内核人员决定的。

下来将指针p置空:p = NULL;

输出为:

现在p不指向任何地址。nil 意思是没有值,它和NULL是有区别的,NULL有值,为0。

至此释放指针空间的问题已结束,另外需注意的是在动态分配空间后记得最后要释放空间。C语言特别看重对内存的使用。

当你坚持做一件完全正确的事情,有可能在很长一段时间内,你的价值都是零。
原文地址:https://www.cnblogs.com/lweleven/p/free.html