C 语言中 free() 函数简单分析
又是一个睡不着的夜晚,现在是凌晨03:16,不知道是不是感冒的原因,头脑并不是清醒,但是就是睡不着。摸着黑打开电脑,洗了杯子抓了点茶叶,然后打开饮水机电源。舍友们都睡着了,我戴着耳机听着轻音乐,也能听见自己敲击键盘的声音。下午做了阿里巴巴的在线笔试题,所以晚上心情不是特别好,就玩了几个小时的游戏。最近一直想的都是毕业后怎么生活、怎么工作,越想越不知道该怎么办。我也知道有可能是自己想的太多了,毕竟还没到那一步。但是自己对自己太不放心了,发现自己大学学的东西太少了,专业知识根本经不起别人的反驳。我一直告诉自己努力,但是却感觉自己并没有取得多大的成绩。我知道每个人的能力有限,自己智商并不高,有时也会发现智商太低,恨铁不成钢。有的人肯定无法体会到这种感觉,因为只有我这种从小地方出来的人,没啥钱,没背景,一无所有的才能体会到。我就是对所有事不服,别人有的我也要靠自己的努力得到,只要我想要。所以我很累,每天活的。
我发现我写的东西完全无厘头,想到啥就写啥。我要继续努力,学习好专业知识,不管结果怎么样,每天都努力学习就行了。
我希望校招能找到好工作,而且可以顺利的去上海。
码了这么多字,现在正式进入主题......
这是测试用例:

输出结果:

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

输出结果:

结果 #3#并没有报错,而是没有输出,我觉得这应该取决于操作系统对这种异常的处理方式,由操作系统内核人员决定的。
下来将指针p置空:p = NULL;

输出为:

现在p不指向任何地址。nil 意思是没有值,它和NULL是有区别的,NULL有值,为0。
至此释放指针空间的问题已结束,另外需注意的是在动态分配空间后记得最后要释放空间。C语言特别看重对内存的使用。
C 语言中 free() 函数简单分析的更多相关文章
- C语言中system()函数的用法总结(转)
system()函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码: #include <sys/types.h> #include <sys/wait ...
- C语言中qsort函数用法
C语言中qsort函数用法-示例分析 本文实例汇总介绍了C语言中qsort函数用法,包括针对各种数据类型参数的排序,非常具有实用价值非常具有实用价值. 分享给大家供大家参考.C语言中的qsort ...
- 关于C语言中printf函数“输出歧视”的问题
目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...
- 使用C语言中qsort()函数对浮点型数组无法成功排序的问题
一 写在开头 1.1 本节内容 本节主要内容是有关C语言中qsort()函数的探讨. 二 问题和相应解决方法 qsort()是C标准库中的一个通用的排序函数.它既能对整型数据进行排序也能对浮点型数据进 ...
- C语言中malloc函数返回值是否需要类型强制转换问题
1. 在C语言中, 如果调用的函数没有函数原型, 则其返回值将默认为 int 型. 考虑调用malloc函数时忘记了 #include <stdlib.h>的情况 此时malloc函数返回 ...
- R语言中apply函数
前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言 ...
- (转)C语言中Exit函数的使用
C语言中Exit函数的使用 exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如 ...
- C语言中malloc函数的理解
在C语言中malloc函数主要是用在堆内存的申请上,使用malloc函数时,函数会返回一个void *类型的值,这个值就是你申请的堆内存的首地址:为什么返回的地址是一个void *类型的地址呢?首先我 ...
- c语言中的c语言中realloc()函数解析
c语言中realloc()函数解析 真是有点惭愧,这些内容本应该很早就掌握的,以前只是糊里糊涂的用,不知道在内存中具体是怎么回事,现在才弄清楚. realloc(void *__ptr, size_t ...
随机推荐
- C#特性
一.概念:C#的特性也是一个类,继承自System.Attribute,用于描述类.方法.字段等 二.类型: 2.1 .net中特性用来处理多种问题,比如序列化.程序的安全特性.防止即时编译器对 ...
- Unichar, char, wchar_t
之前总结了一些关于字符表示,以及字符串的知识. 现在在看看一些关于编译器支持的知识. L"" Prefix 几乎所有的编译器都支持L“” prefix,一个字符串如果带有L“”pr ...
- 解决C#的64位打包程序,在64位机器上运行出现BadImageFormatException异常。
转载自:http://msdn.microsoft.com/zh-cn/library/system.badimageformatexception%28v=vs.100%29.aspx BadIma ...
- 无法为表空间 ***中的段创建 INITIAL 区
这是由于表空间不足引起的. 具体错误: 解决方案:扩展表空间
- 极客DIY:开源WiFi智能手表制作
如果你喜欢拥有一款属于自己的无线手表,那么请不要错过,相信阅读完这篇文章对你会很有帮助. 硬件规格 ESP8266(32Mbit闪存) MPU-9250(陀螺仪传感器)以及 AK8963(内置磁力计) ...
- 使用Wireshark捕捉USB通信数据
USB,是英文Universal Serial Bus(通用串行总线)的缩写,而其中文简称为“通串线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.USB接口支持设备的即插即用和热插拔功能 ...
- Android 编译Settings、Mms等模块,并Push到手机中安装失败
问题描述:在编译完Settings等相关模块后,并push到手机中安装失败(在手机中无法找到该应用),但是使用adb shell命令进入到手机中在System/app或者System/priv-app ...
- 【Tsinghua OJ】范围查询(Range)问题
[问题描述]数轴上有n个点,对于任一闭区间 [a, b],试计算落在其内的点数. [输入]第一行包括两个整数:点的总数n,查询的次数m.第二行包含n个数,为各个点的坐标.以下m行,各包含两个整数:查询 ...
- Median Weight Bead_floyd
Description There are N beads which of the same shape and size, but with different weights. N is an ...
- 【题解】【排列组合】【回溯】【Leetcode】Gray Code
The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...