【c基础知识】指针注意事项
来源:互联网 发布:杭州淘宝运营学徒招聘 编辑:程序博客网 时间:2024/05/21 20:24
1.不允许向NULL和非法地址拷贝内存:
标准定义了NULL指针,它作为一个特殊的指针变量,表示不指向任何东西。要使一个指针为NULL,可以给它赋值一个零值。为了测试一个指针百年来那个是否为NULL,你可以将它与零值进行比较。
对指针解引用操作可以获得它所指向的值。但从定义上看,NULL指针并未执行任何东西,因为对一个NULL指针因引用是一个非法的操作,在解引用之前,必须确保它不是一个NULL指针。
如果对一个NULL指针间接访问会发生什么呢?结果因编译器而异。
2.在使用指针时,要避免野指针的出现
什么情况下回导致野指针?
n 指针变量未初始化
任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。
n 指针释放后未置空
有时指针在free或delete后未赋值 NULL,便会使人以为是合法的。别看free和delete的名字(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。此时指针指向的就是“垃圾”内存。释放后的指针应立即将指针置为NULL,防止产生“野指针”。
n 指针操作超越变量作用域
不要返回指向栈内存的指针或引用,因为栈内存在函数结束时会被释放。
操作野指针是非常危险的操作,应该规避野指针的出现:
n 初始化时置 NULL
指针变量一定要初始化为NULL,因为任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的。
n 释放时置 NULL
当指针p指向的内存空间释放时,没有设置指针p的值为NULL。delete和free只是把内存空间释放了,但是并没有将指针p的值赋为NULL。通常判断一个指针是否合法,都是使用if语句测试该指针是否为NULL。
- 【c基础知识】指针注意事项
- C语言指针注意事项
- C基础指针注意事项
- C指针使用注意事项
- C基础知识--指针基础篇
- C基础知识--指针算术运算
- C基础知识--指针与数组
- C语言指针基础知识总结
- c语言函数指针使用注意事项
- C 函数传递指针参数注意事项
- C---int和指针转换注意事项
- c语言指针在传参时的注意事项
- 关于C中指针使用的注意事项
- c/c++基础知识读书笔记四 初级指针
- C基础知识--指针类型的常量
- 【C++】基础知识—引用和指针引用
- c语言基础知识(一):指针介绍
- C基础知识-函数指针以及使用
- 写一个函数返回参数二进制中 1 的个数,提示:使用位操作符:按位与&
- 读取文件乱码问题
- 数据结构栈的一系列操作
- linux 文件系统的建立
- 使用CSS定义一个和屏幕宽度一样正方形容器
- 【c基础知识】指针注意事项
- CSS 选择器
- 女朋友的梦
- 自然数 线段树
- 第一章习题
- JSP统计网站访问人数
- NIO Charset类字符编码对象
- 顺序链表 : 表头添加节点 + 表尾添加节点
- JS基础-1012总结