在 C 程序中为同一个指针调用两次“free”有什么害处吗?

2023-11-21

如果我有一个 C 程序,例如:

SomeTypePtr my_type;
my_type = malloc(sizeof(someType));

/* do stuff */

free(my_type);

/* do a bunch of more stuff */

free(my_type);

为 my_type 调用“free”有什么危害吗?调用 free(my_type) 后,指针是否再次变为空指针?


释放内存区域free不会使指针的内容为 NULL。假设你有int *a = malloc (sizeof (int)) and a has 0xdeadbeef然后你执行free (a)然后执行后a仍含有0xdeadbeef但之后free调用此内存地址不再为您保留。比如你租了一套公寓malloc使用了一段时间,归还单位free那么您可能有一把重复的公寓钥匙,但它不是为您保留的。

Doing a free已经在freed 内存将导致双空闲内存损坏。

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

在 C 程序中为同一个指针调用两次“free”有什么害处吗? 的相关文章

随机推荐

  • Javascript,encodeURI 无法编码圆括号“(”

    我的 cookie 值包含圆括号 例如 demo 1 当我尝试使用 encodeURI 进行编码时 圆括号 未编码为 28 对圆括号等特殊字符进行编码的替代方法是什么 将 uri 组件编码为符合 RFC 3986 对字符进行编码 您可以使用
  • 如何在 Linux shell 脚本中提示“是/否/取消”输入?

    我想暂停 shell 脚本中的输入 并提示用户进行选择 标准Yes No or Cancel输入问题 如何在典型的 bash 提示符中完成此操作 在 shell 提示符下获取用户输入的一种广泛使用的方法是read命令 这是一个演示 whil
  • 在子字符串匹配(或包含)时加入 PySpark 数据帧

    我想在两个数据帧之间执行左连接 但列不完全相同 第一个数据帧中的连接列相对于第二个数据帧有一个额外的后缀 from pyspark import SparkContext import pyspark sql functions as f
  • 何时使用 GAE 数据存储中的实体组

    跟进我之前关于 GAE 数据存储实体层次结构的问题 我仍然很困惑什么时候使用实体组 举这个简单的例子 Every Company有一个或多个Employee实体 An Employee不能移动到另一个Company 以及处理一个的用户Com
  • Django 使用表达式聚合查询

    我有一个模型 XYZ 我需要获取给定查询集的字段 a b 和表达式 x y 的最大值 它对于田野来说效果很好 就像是 gt gt gt XYZ all aggregate Max a a max 10 但是 我找不到一种方法来实现表达式 尝
  • 使用 ggplot2 为组自定义颜色

    我正在尝试使用下面给出的代码使用 ggplot2 绘制线性判别图 require MASS require ggplot2 data iris my data lt iris model lt lda formula Species dat
  • 如何截断android领域中的所有表

    您好 我尝试在用户注销时截断 Android 中的所有表 我仅使用领域默认路径 realm Realm getInstance getApplicationContext public void clearDB Realm deleteRe
  • Bower(和 npm)版本语法是什么?

    Bower 使我能够使用以下语法指定包的版本要求 dependencies
  • 使用 pyplot 在不等轴上绘制圆

    我想在自动缩放的 pyplot 生成的图形上绘制一个圆圈 当我跑步时 ax get aspect 希望得到一个可以操纵椭圆轴的值 pyplot 返回 auto 这没什么用处 您建议使用什么方法在具有不等轴的 pyplot 图上绘制圆 这个问
  • 如何在 Swift 中重置/重新启动视图控制器?

    我想在我的导航栏上有一个 重置 按钮 并且我希望将其连接到IBAction有点 重新启动 控制器 我有一些来自另一个控制器的转折 它改变了某些方面viewcontroller 有一个collectionview 并且我希望用户能够重新开始
  • 打开/解压 zip 文件时 Cordova 构建 Gradle 错误

    当我运行 cordova build 时 我得到了这个 Running command Users tyrant workspace ideaProject hello platforms android cordova build AND
  • 如 help(foo) 所示,Python 方法签名中的正斜杠“/”的含义是什么? [复制]

    这个问题在这里已经有答案了 在交互返回的签名中help foo a 的含义是什么 In 37 help object eq Help on wrapper descriptor eq self value Return self value
  • Spring/Java中的调度任务

    我正在生成一个线程 它将不断从数据库中提取记录块并将它们放入队列中 该线程将在服务器负载上启动 我希望这个线程始终处于活动状态 如果数据库中没有记录 我希望它等待一段时间后再次检查 我正在考虑使用 Spring 任务调度程序来安排此任务 但
  • 用于创建用户配置文件的 Windows API

    我正在尝试找到用于创建用户配置文件的 Window API 我正在 Windows 中创建本地用户 并且尝试使用 CreateProcessWithLogonW 并设置了 LOGON WITH PROFILE 标志来与该用户运行进程 由于配
  • 您在常见的 Delphi 编程中实现了哪些设计模式? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 您采用什么设计模式常见的Delphi编程 有哪些图案easier适应Delphi编程 每种语言在不同的领域都很优秀 那么使用 Delphi 时哪些模式可能是非常强大的结构 如果您能告诉我一
  • React 路由器或链接未渲染

    我在 redux 应用程序中使用react router dom 这是我在 index js 中的初始设置 ReactDOM render
  • pg_stat_activity 不会在过程或事务中更新

    I query pg stat activity但在我第一次在 plpgsql 函数体内查询它之后 内容似乎保持不变 SERIALIZABLE or REPEATABLE READ交易 为什么pg stat activity不遵守规则REA
  • Java图像转换

    我需要为我的图像创建 3D 深度效果 数字 1 是我所拥有的 数字 2 是我想要转换数字 1 的形状 那么在 Java 标准图形库或其他一些开源库中是否有任何方法可以实现这一点 这不能使用AffineTransform班级 请参阅维基百科关
  • Stream.map/filter 中的 Lambda 未调用

    我试图在 a 中找到单独的重复项和非重复项List通过将它们添加到Set and List使用时Stream filter and Stream map List
  • 在 C 程序中为同一个指针调用两次“free”有什么害处吗?

    如果我有一个 C 程序 例如 SomeTypePtr my type my type malloc sizeof someType do stuff free my type do a bunch of more stuff free my