ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言指针笔记

2021-10-10 10:33:13  阅读:228  来源: 互联网

标签:初始化 malloc 指向 笔记 C语言 free NULL 指针


C语言中free和NULL的区别:

free(T);是释放T指针指向的地址开头的一片空间,到底有多大必须是由malloc函数事先分配的已知数;但释放T指向的空间不是释放T指针,T一旦声明,在C中就释放不了了,它永远存在。为了防止后面误用T带来危险,常让它等于0(就是NULL);等于NULL的指针叫空指针,是使用不成的,这就避免了误用带来的危险。以后要用T时要重新赋值。

也就是说,free是释放内存指针指向的内存(但指针依然存在),将T赋值为NULL是防止非法操作。

关于空指针和野指针的区别,以下内容引用自:

空指针和未初始化的指针的区别_CPFelix的博客-CSDN博客

1.为什么指针变量定义时一定要初始化? 
因为你首先要理解一点:内存空间不是你分配了才可以使用只是你分配了之后使用才安全。

为什么要进行对指针初始化呢?
因为指针未被初始化,所以指针所指向的也是随机的,他是个野指针,如果你引用指针,并修改这个指针所指向的内容,而如果这个指针所指向的内容恰好是另外一个程序的数据的话,你将其进行修改了,就会导致另外一个程序可能不能正常运行了。

2.指针变量初始化为NULL是什么意思?
意思是说,强指针变量置空,初始化为NULL,使它不指向任何内容,这样引用它也不会出现上面的问题
总之一点,记住在使用指针之前要对它进行初始化操作就可以了

3、空指针和未初始化的指针

空指针的简单描述:它 “与任何对象或函数的指针值都不相等”。也就是说, 取地址操作符 & 永远也不能得到空指针, 同样对 malloc() 的成功调用也不会返回空指针, 如果失败, malloc() 的确返回空指针, 这是空指针的典型用法:表示 “未分配”或者 “尚未指向任何地方”的指针。

空指针和未初始化的指针:
空指针在概念上不同于未初始化的指针。空指针可以确保不指向任何对象或函数; 而未初始化指针则可能指向任何地方。

标签:初始化,malloc,指向,笔记,C语言,free,NULL,指针
来源: https://blog.csdn.net/qq_45332251/article/details/120634346

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有