/*** 1. 未初始化和非法的指针* 例子:* int *a; // 注意: a这里指向哪里?不确定会指向哪里 这里会发生什么* *a = 12;* 运气好的话:定位到一个非法地址,程序会出错,从而终止。* 最坏情况:* 定位到一个可以访问的地址,无意修改了它,* 这样的错误难以捕捉,引发的错误* 可能与原先用于操作的代码完全不相干* * NULL指针* 一个特殊的指针变量,表示不指向任何东西。* 如:* int* a = NULL;* * NULL指针的概念费用有用:* 它给了一种方法,来表示特定的指针目前未指向任何东西。* * 使用的注意事项:* 1. 对于一个指针,如果已经知道将被初始化什么地址,那么请赋值* 给它这个地址值,否则赋给NULL* 2. 在间接引用之前,需要判断指针是否为NULL* * * 杜绝野指针* 指向“垃圾”内存的指针。if等判断对它们不起作用,因为没有设置NULL* * 一般有三种情况:* 1. 指针变量没有初始化* 2. 已经释放不用的指针没有置为NULL,如delete和free之后的指针* 3. 指针操作超越了变量的作用范围* * 指针使用的注释事项:* 没有初始化的,不用的或者超出范围的指针请把值置为NULL
*/
#include<iostream>
using namespace std;int main(int argc, char const *argv[])
{/* code */// NULL的使用int a = 123;int* pA = NULL;pA = &a;if (pA!=NULL) {cout<<(*pA)<<endl;     }pA = NULL;return 0;
}

输出如下:

123

021-C++中野指针相关推荐

  1. GFlags调试堆中野指针

    我个人觉得写代码最悲哀的就是,程序的出错结果往往出人意料,并不在自己预期的错误列表中,其中堆中的野指针就是一个很隐蔽的问题.记得之前写了一个模块,后来因为功能升级,而修改了部分接口,等到运行的时候,老 ...

  2. c语言野指针应用,C语言中野指针的深入解析

    C语言中野指针的深入解析 C语言中野指针这一块是C语言的难点,下面小编为大家带来了C语言中野指针的深入解析,欢迎大家阅读! "野指针"的成因主要有两种: (1)指针变量没有被初始化 ...

  3. C++中野指针和空指针和无类型指针

    C++中野指针和空指针和无类型指针https://blog.csdn.net/chenguolinblog/article/details/27054267 一. 野指针 所谓的野指针指的是一个指针变 ...

  4. C/C++中野指针产生的三种情况

    C/C++中野指针产生的三种情况 1.指针变量未初始化: 任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气,此时若未初始化,则产生野指针. 2.指针释放后未置空: 有时 ...

  5. C中野指针、空指针、万能指针问题

    目录: 一.内存空间 1.1 代码区(text segment) 1.2 静态全局区 1.3 堆区 1.4 栈区 二.变量在内存中的作用域和未初始值 2.1 变量的作用域:变量起作用的范围 2.2 不 ...

  6. c语言编程中野指针错误,C语言(野指针错误)

    realloc引起的coredump 记录一次接口程序在运行过程中产生的崩溃问题,通过调试 core文件,定位到是程序在调用realloc 时候出现了问题 问题程序代码 #include #inclu ...

  7. c语言编程中野指针错误,C程序中可怕的野指针

    一.疑问点 指针是C语言一个很强大的功能,同时也是很容易让人犯错的一个功能,用错了指针,轻者只是报个错,重者可能整个系统都崩溃了.下面是大家在编写C程序时,经常遇到的一种错误的使用方法,也许在你的学习 ...

  8. c语言编程中野指针错误,小心C语言野指针

    指针是C语言一个很强大的功能.然而所谓成也萧何,败也萧何,用好了指针会使程序大放异彩,用错了指针轻者只是报个错,重者可能整个系统都崩溃了.本篇我们来谈谈指针一种错误的使用方法"野指针&quo ...

  9. C++中野指针问题分析总结

    其实项目一直被野指针困扰,一直在讨论,居然没有什么下文,下文正式由我接受这个问题. 场景是这样:指针间互相引用,一个被删除的时候,另外一个不知道,它再使用的时候就会异常,因为此时指针已经为空了. 我今 ...

  10. 关于C++中野指针的说明

    野指针,也就是指向不可用内存区域的指针.如果对野指针进行操作,将会使程序发生不可预知的错误,甚至可能直接引起崩溃. 野指针不是NULL指针,是指向"垃圾"内存的指针.人们一般不会错 ...

最新文章

  1. msvc2013编译qt5.6源码
  2. 关于校验规则(Validation Rule)和业务规则(Bussiness Rule)的思考
  3. maven多个web模块进行合并
  4. linux平台性能监控系统,Linux系统性能监控
  5. 用费曼技巧自学编程,香不香?
  6. 设计模式3:装饰模式
  7. linux 编译工具链,Linux工具链for TKStudio下载_Linux工具链for TKStudio官方下载-太平洋下载中心...
  8. mfc对话框在不同计算机上显示不全
  9. mysql建表时主键_mysql建表时怎么设置主键?
  10. BDS-HA:构建高可用、低延迟的HBase服务
  11. SpringCloud Gateway 集成 oauth2 实现统一认证授权_03
  12. linux shell取变量的子串26种方法实践
  13. 安卓开发经常闪退的原因及解决方法
  14. WCF学习之旅(一)---Hello World.
  15. Django之kindeditor
  16. 制造业数字化转型-项目案例合集
  17. 计算机自动化专业强的二本大学,2020自动化专业大学排名公布
  18. 解决docker+openvpn搭建完成后客户端能连接,但是无法访问互联网或其他机器
  19. 调用app出现This app is not allowed to query for scheme...
  20. PyTorch RuntimeError: size mismatch, m1:

热门文章

  1. 大型【项目管理】的实战
  2. Data Guard 和 GoldenGate的区别
  3. Fortran 95 固定过程
  4. 【开发工具】 什么是Office 今天让你认识它
  5. Linux下电骡aMule Kademlia网络构建分析3
  6. ProSpec 神经营养因子 多效素研究方案
  7. python 显示下载进度
  8. 纯python+tk开发股票证券软件
  9. linux rpm -qa,为什么使用rpm -qa命令显示是空的?
  10. div显示在底部(一种固定不变,另一种随页面上下翻动而动)