C++空指针和野指针

2023-10-28

空指针:指针被赋值为空
例如:

  • int* p = nullptr;
  • int* p = NULL;
    空指针指向的地址是00000000,但空指针不可以解引用
    在这里插入图片描述

野指针:指针指向了不可控的位置
例如:

  • 未初始化
    int* p; //野指针

  • 越界访问
    int intArr[5]{0, 1, 2, 3, 4};
    int* p = &intArr[5]; //野指针

  • 指向被释放的空间
    第一种情况,局部变量被释放
    string* uArr[2]{};
    void Test()
    {
    string a = “abc”; //局部变量,存放在栈中,函数结束就释放空间
    uArr[0] = &a;
    cout << uArr[0] << endl; //这里能打印出abc
    }
    Test();
    cout << uArr[0] << endl; //这里已经是野指针了

    第二种情况,delete
    int* p =new int;
    delete p; //释放p所在的空间
    cout << p << endl; //这是p就是野指针

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++空指针和野指针 的相关文章

  • 将复选框添加到 UniformGrid

    我正在尝试将复选框动态添加到 wpf 中的统一网格中 但看起来网格没有为它们分配足够的空间 所以它们都有点互相重叠 这就是我将它们添加到后面的代码中的方法 foreach string folder in subfolders PathCh
  • 如何使 Windows 窗体的关闭按钮不关闭窗体但使其不可见?

    该表单有一个 NotifyIcon 对象 当用户单击 关闭 按钮时 我希望表单不关闭而是变得不可见 然后 如果用户想再次查看该表单 可以双击系统托盘中的图标 如果用户想关闭表单 可以右键单击该图标并选择 关闭 有人可以告诉我如何使关闭按钮不
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

    使用查询正数列表时SingleOrDefault 当在列表中找不到数字时 如何返回 null 或像 1 这样的自定义值 而不是类型的默认值 在本例中为 0 你可以使用 var first theIntegers Cast
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46

随机推荐

  • 基于51单片机机械臂控制系统

    1控制系统所运用到的模块 所用到的模块有 pca9685控制多路舵机模块 矩阵按键模块 LCD1702显示模块 DS18B20温度检测模块 独立按键模块 步进电机 ULN2003步进电机控制模 DS1302时钟模块 2控制系统工作模式的功能
  • 腾讯2014校园招聘笔试题

    腾讯 2014校招研发笔试题 试卷类型 软件开发A1 考试时长 120分钟 一 不定向选择题 共25题 每题4分 共100分 多选 错选 少选不得分 1 已知一棵二叉树 如果先序遍历的节点顺序是 ADCEFGHB 中序遍历是 CDFEGHA
  • eclipse启动不了,在加载到最后时刻卡死解决办法

    出现这种情况 关机 重启都无法解决的时候 方法一 到
  • CentOS7使用手册

    2 操作 yum remove openssl 问题 无法进入图形界面 解决 shell登录 执行 yum groupinstall KDE Plasma Workspaces reboot 1 操作 重装系统 然后安装了其它第三方库 问题
  • CentOS8服务篇7:配置网络存储iSCSI服务

    一 iSCSI技术概述 基于IP的存储区域网 Internet Small Computer System Interface iSCSI 又称IP SAN 它是一种基于因特网及SCSI 3协议的存储技术 由IETF提出 并于2003年2月
  • 原来类加载器的原理是这样执行的

    原文链接 深入类加载原理 我们知道 我们写的java文件是不能直接运行的 我们可以在IDEA中右键文件名点击运行 这中间其实掺杂了一系列的复杂处理过程 这篇文章 我们只讨论我们的代码在运行之前的一个环节 叫做类的加载 按照我写文章的常规惯例
  • MyBatis下DataSource的配置原理以及多数据源的配置

    MyBatis下多数据源的配置 多datasource的配置原理 将不同数据源的mapper接口放在不同的包内 再在数据源配置中 用 MapperScan注解扫描不同的包 引言 先来学习一下单数据源情况下的配置原理 只关心多数据源的配置方法
  • Linux常用命令总结

    很全啊 记录一下 https mp weixin qq com s biz MzI3MjY1ODI2Ng mid 2247485996 idx 1 sn 0a08bf2f04eed49542a96cee6928a561 chksm eb2e
  • 第一个 Spring Boot 子服务——会员服务

    经过上两个章节的分析 设计工作 相信你已经对项目的整体结构有了更清晰的认识 剩下的工作就是依据设计 将项目骨架拉出来 往里面直充血肉 搭建项目骨架 约定项目名称为 parking project 建立 Maven 项目 packaging
  • 广州面试题------39健康网1广州启生信息技术有限公司

    部分笔试答案 3 接口 interface 是抽象方法和常量值的定义的集合 从本质上讲 接口是一种特殊的抽象类 这种抽象类中包含常量和方法的定义 而没有变量和方法的实现 1 接口是一组规则的集合 它规定了实现本接口的类或接口必须拥有的一组规
  • 【语义分割】轻量级人像分割PP-HumanSeg NCNN C++ windows部署

    ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架 ncnn 从设计之初深刻考虑手机端的部署和使用 无第三方依赖 跨平台 手机端 cpu 的速度快于目前所有已知的开源框架 基于 ncnn 开发者能够将深度学习算法轻松移植到手机端高
  • C++ std::string 字符串替换

    std string里面std replace只有单字符替换 std replace str begin str end 单字符替换 将双引号换成 符 如果有字符串替换的话需要配合find 使用
  • 【React】根据条件渲染不同的组件内容

    需求如下 但我点击不同的按钮时 下面渲染的是不同组件的内容 wokao这个图片大小咋调 每回都贼大 第一步 先写好不同组件的内容 第二步 在state状态里面加一个Type进行记录 第三步 核心代码如下 好了 说白了就是通过改变type的值
  • php 在线测试 tool,在线程序员工具箱

    Tool lu 将在线工具分为开发类 站长类 极客 Geek 类以及其他 其中收录很多在开发或网站站长会用到的工具 例如 CSS JavaScript PHP 代码优化 压缩 SQL Ruby 和 Json Python 等代码美化 图片编
  • 深度学习——全连接层(Fully connected dence layers)原理解析

    深度学习 全连接层 Fully connected dence layers 原理解析 一 简介 全连接层有多个神经元 是一个列向量 单个样本 在计算机视觉领域正常用于深度神经网络的后面几层 用于图像分类任务 全连接层算法包括两部分 前向传
  • Java集合篇:ArrayList详解

    一 ArrayList概述 ArrayList是实现了List接口的动态数组 所谓动态数组就是他的大小是可变的 实现了所有可选列表操作 并允许包括Null在内的所有元素 除了实现 List 接口外 此类还提供一些方法来操作内部用来存储列表的
  • Eclips 安装教程

    Eclipse 安装教程 一 Eclipse 下载 二 Eclipse 安装 三 Eclipse 使用 一 Eclipse 下载 第一步 进入官方下载网站 https www eclipse org downloads 点击下载按钮下方 D
  • ACM-ICPC如何起步

    刚刚绝定投身ACM ICPC的同学先要过两关 第一关 程序设计语言 如果学校有开设相关课程 则省去了很多麻烦 如果没有则可以选择 程序设计导引及在线实践 作为教材 现在的比赛中允许使用的语言相对局限 建议c和c 至少掌握一种 java可以在
  • [转]ZC702与ZedBoard开发板的比较

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 锋影 email 174176320 qq com ZC702与Z
  • C++空指针和野指针

    空指针 指针被赋值为空 例如 int p nullptr int p NULL 空指针指向的地址是00000000 但空指针不可以解引用 野指针 指针指向了不可控的位置 例如 未初始化 int p 野指针 越界访问 int intArr 5