这段代码会做什么? (内存管理)

2023-12-28

char *p = new char[200];
char *p1 = p;
char *p2 = &p[100];
delete [] p1;

顺便说一句,这不是一个测试,也不是我真正需要知道的任何事情:)


 // allocate memory for 200 chars
 // p points to the begining of that 
 // block
 char *p = new char[200];
 // we don't know if allocation succeeded or not
 // no null-check or exception handling

 // **Update:** Mark. Or you use std::no_throw or set_new_handler. 
 // what happens next is not guranteed

 // p1 now points to the same location as p
 char *p1 = p;

 // another pointer to char which points to the
 // 100th character of the array, note that
 // this can be treated as a pointer to an array
 // for the remaining 100-odd elements
 char *p2 = &p[100];

 // free the memory for 200 chars
 delete [] p1;

 // **Update:** Doug. T
 // [...] p and p2 are now pointing to freed memory 
 // and accessing it will be undefined behavior 
 // depending on the executing environment.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这段代码会做什么? (内存管理) 的相关文章

随机推荐

  • 从 RStudio 访问命令行 (cmd)

    在我在 R 下的工作中 我需要调用另一个软件 ANSYS 为此 我正在 R 下寻找一个允许访问命令行窗口 cmd 的命令 例如 在 matlab 下 字符 允许执行此操作 谢谢 您可以使用system system2 or shell在 W
  • IBOutlet 声明?

    我已经看到下面的代码以 3 种不同的方式编写 关于 IBOutlet 这有关系吗 我想说将 IBOutlet 添加到声明和 property 中会更简洁 只是财产 class SwitchViewController interface i
  • 关于对象比较

    我有一个 java 类 Rec 我有两个实例 Rec1 和 Rec2 我想检查 Rec1 和 Rec2 的值是否相等 如果我这样做 Rec1 equals Rec2 是正确的做法吗 class Rec private BigDecimal
  • 如何从 URL 参数获取 unicode 字符?

    我需要使用 GET 请求通过 JavaScript 客户端将 JSON 发送到我的服务器 因此我开始回显响应以确保翻译过程中不会丢失任何内容 普通文本似乎没有问题 但是一旦我包含任何类型的 Unicode 字符 例如 该字符就会以某种方式编
  • JavaScript:回调函数参数与其他变量同名?

    var str internet performAction function str console log str 私有变量有问题吗str并且还有一个带有同名参数的回调函数 Thanks 这只是一个标准范围的情况 它是作为参数传递给另一
  • Android 机器未联网

    当我的应用程序连接到 WiFi 网络时 我在运行网络服务时遇到问题 我收到以下异常 java net SocketException socket failed ENONET Machine is not on the network 在下
  • 是否可以在不使用图像映射软件的情况下获得图像映射的坐标?

    我正在学习 html css 令我困惑的一件事是图像映射的想法 我该如何获取图像一部分的坐标并将其插入我的区域标签而不使用像 gimp 这样的图像映射软件 使用 gimp 的图像映射工具确实很有用 但我担心将来我需要知道如何在没有 gimp
  • 在 python 中从密码生成 RSA 密钥

    我希望能够生成并再生相同的 RSA 密钥password 和盐 单独在python 目前我正在使用 pycrypto 进行此操作 但是 它似乎并不能单独从密码生成相同的密钥 原因似乎是当 pycrypto 生成 RSA 密钥时 它在内部使用
  • 带有结构和空元胞数组的 MATLAB“bug”(或非常奇怪的行为)

    我不知道这里发生了什么事 我用的是R2006b 在我提交错误报告之前 拥有较新版本的人是否有机会测试一下他们是否获得相同的行为 code bug1 m function bug1 S struct nothing something add
  • JavaScript 正则表达式替换字符序列

    我想在这种特定情况下用下划线替换字符串开头和结尾的所有空格 var a console log myReplace a prints 即 第一个 之前的字符串开头的所有空格以及最后一个 之后的所有空格 其他所有内容 包括字符串中间的空格 保
  • Django/Python 循环模型参考

    好的 所以我正在尝试编写组织良好的代码 并实际制作单独的 django 应用程序 而不是将所有内容集中到 1 个应用程序中 我的问题是我有 3 个应用程序 每个应用程序都引用下一个应用程序中的 1 个其他模型 所以基本上我有一个无限循环 应
  • 如何在matplotlib中制作较粗的茎线

    我想在使用时在 python 中制作更粗的茎线plt stem 这是我的代码 import matplotlib pyplot as plt import numpy as np N 20 n np arange 0 2 N 1 x np
  • 静态块与静态方法 - 初始化静态字段

    出于好奇 我测量了静态块和静态方法初始值设定项之间的性能 首先 我在两个单独的 java 类中实现了上述方法 如下所示 First class Dummy static java util List
  • Glassfish 中的休眠 - Ejb3Configuration NoClassDefFoundError

    我已将 Hibernate 库放入 Glassfish 域和 Netbeans 项目的库集合中 hibernate entitymanager jar包含 HibernatePersistence 调用堆栈中的最后一个类 和 Ejb3Con
  • 带选择框的 Struts2 jQuery 自动完成器

    我使用过 Struts2 jQueryautocompleter对于我的 Struts 2 应用程序 这是我的代码 JSP
  • 所有 Python 脚本停止工作:macOS Monterey 12.6 更新后所有项目中的路径均已更改

    今天将 macOS Monterey 更新到 12 6 后 我所有的 Python 项目 脚本都停止工作 在我的项目的 venv 之一中检查 Python 二进制文件的符号链接 我看到原始文件是 Library Developer Comm
  • 使用 unity 解析具有多个构造函数的实例

    我想使用 unity 创建一个类的实例 其中该类有两个参数数量相同的构造函数 这是实例化 unityContainer Resolve
  • 部署到tomcat的war无法抛出java.lang.NoClassDefFoundError: javax/persistence/PersistenceException

    我是这个论坛的新手 也是 JPA EJB 的新手 我正在尝试将包含小型应用程序的 war 文件部署到 tomcat 服务器 该应用程序使用 JTA 与 Derby 数据库进行通信 当我在 eclipse 中运行的 tomcat 服务器上运行
  • 无法加载本机 TensorFlow 运行时 - TensorFlow 2.1

    我有一台台式电脑和一台笔记本 当我尝试在笔记本上安装tensorflow时 只需使用pip 安装张量流它工作正常 然后我在我的台式计算机上尝试了相同的操作 当我尝试运行最简单的代码时 import tensorflow as tf from
  • 这段代码会做什么? (内存管理)

    char p new char 200 char p1 p char p2 p 100 delete p1 顺便说一句 这不是一个测试 也不是我真正需要知道的任何事情 allocate memory for 200 chars p poin