realloc后如何释放内存

2024-01-03

这段代码中释放内存的正确方法是什么?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main( void ){

    char *string1, *string2;
    string1 = (char*) malloc(16);

    strcpy(string1, "0123456789AB");

    string2 = realloc(string1, 8);

    printf("string1 Valor: %p [%s]\n", string1, string1);
    printf("string2 Valor: %p [%s]\n", string2, string2);

    free(string1);
    free(string2);
    return 0;
}

由于两个指针指向同一个方向


我认为您的困惑来自(没有灵感的)表达“自由指针”(您在帖子中使用过,但此后将其编辑掉)。你不要释放指针. You 空闲内存。指针只是telling哪个记忆。


在您的示例中,您有:从以下位置获得的内存malloc. string1指向这段记忆。然后当你打电话时realloc获得一个新的内存块(可能从同一地址开始,也可能不是),但是realloc如果需要,请注意释放旧的(因此自行访问或释放它是未定义的行为)。string2指向这个新的内存块。

所以你必须free只是从获得的内存块realloc. string2指向那段记忆。

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

realloc后如何释放内存 的相关文章

随机推荐

  • 如何使用镜头库编写依赖于其他镜头的复杂镜头?

    此刻 我有一个WorkLog类型 并带有开始日期和结束日期 我还想添加一个持续时间镜头 它将从开始日期和结束日期派生出来 它应该是只读的 或者如果其值发生更改则更改结束日期 我想知道如何实现这两个版本 即使我只会使用一个版本 这是我的代码
  • Delphi对象持久化,什么是最好的方法

    我已经开发了用于绘制一些形状 主要是线条 的应用程序 现在我需要能够将草图存储到文件中 我知道delphi已经内置了用于对象持久性的例程 但我从未使用过它 有人可以告诉我 如果我必须保留还引用其他对象 将存储到 的对象 可以使用对象持久性吗
  • 在两个 Flask 服务器之间共享会话

    我有一个带有两个 Flask 服务器的后端 一种是处理所有 RESTfull 请求 另一种是 Flask socketio 服务器 有没有办法在这两个应用程序之间共享会话变量 登录用户等 如果这很重要的话 它们确实会在不同的端口上运行 我如
  • 如何立即退出 Windows 窗体 .NET 应用程序?

    在我们的应用程序中 我们有一个相当广泛的异常处理机制 在错误处理逻辑中的某个时刻 我们希望终止应用程序 就在此时 不再执行任何代码 我们当前的代码使用Environment Exit 来做到这一点 调用Environment Exit 后
  • Tkinter 全局绑定

    是否可以用一行将所有小部件绑定到一个命令 如果我可以输入一行而不是单独执行每个小部件 那就太好了 你会使用bind all http epydoc sourceforge net stdlib Tkinter Misc class html
  • ThreeJS X 旋转行为异常

    我正在制作 ThreeJS 演示 目前正在使用箭头键旋转相机 起初一切似乎都很顺利 我可以成功地上下左右旋转 但是 当我向左转动 然后尝试向上或向下旋转时 它会向上和向下旋转 但与我当前的位置无关 它的作用就好像我根本没有向左旋转一样 这是
  • 如何在C#中查询网络连接状态?

    查找连接到互联网或未连接互联网的用户的最佳和快速方法是什么 尝试这个 1
  • 服务器端相当于 HttpContext?

    我有一个 Web 应用程序 当前使用当前的 HttpContext 来存储 LINQ 数据上下文 上下文针对当前请求 基于每个用户 每个里克 斯特拉尔的博客 http www west wind com weblog posts 24622
  • Delphi 中的屏蔽异常

    几天来 我一直在与例外面具努力斗争 但徒劳 我开发了一个应用程序 可以对数十万条记录进行大量浮点计算 显然 代码必须能够处理异常 尤其是与浮点计算相关的异常 溢出 ZeroDivide 等 该应用程序可以在具有许多不同类型处理器的 Wind
  • POST 和 GET 有什么区别? [复制]

    这个问题在这里已经有答案了 我最近才开始接触 PHP AJAX jQuery 在我看来 这些技术的一个重要部分是POST and GET 首先 两者有什么区别POST and GET 通过实验 我知道GET将返回变量及其值附加到 URL 字
  • 将 console.log() 与 Electron 一起使用

    我看到人们试图从渲染过程中控制台日志提出很多问题 这不是我的问题 我有 console log 乱七八糟的主代码 我在控制台中看不到任何内容 这是我的代码 eslint disable no undef const app BrowserW
  • 简单注入器将硬编码值传递到构造函数中

    In 简易注射器 https simpleinjector org我可以执行以下操作 container RegisterSingle
  • 通过curl POST 将参数传递给jenkins 作业不起作用?

    我尝试启动 curl X POST u user pass H Jenkins Crumb thecrumbnumber http myjenkinsserver jenkins job testjob buildWithParameter
  • MySQL 的 ORDER BY RAND() 如何工作?

    我一直在研究和测试如何在 MySQL 中进行快速随机选择 在此过程中 我遇到了一些意想不到的结果 现在我不确定我是否知道 ORDER BY RAND 的真正工作原理 我一直认为 当你对表执行 ORDER BY RAND 时 MySQL 会向
  • 在 Android 中检查密码

    我想检查密码 并且我在 Android 中有一个密码字段 package com example berk4 import android os Bundle import android view View import android
  • java.security.InvalidKeyException:生成 RSA 公钥时密钥格式无效

    背景 我创建了一个小程序来提取从智能卡中提取的证书的公钥 然后将该公钥存储在数据库中 证书的私钥用于对数据进行签名 然后使用公钥来验证签名 从证书中提取公钥的代码 private byte getPublicKey KeyStore par
  • 使用相同颜色绘制多条线,但使用色调来分隔线

    我有这些数据 我想为每个观测值绘制一条年龄与预测概率的线 Age Predicted Probability Obs 18 0 0 206 3 0 15 0 0 206 3 0 34 0 0 154 3 0 52 0 0 124 3 0 4
  • 使用 Nodejs 中的服务帐户域范围委派通过 Google Apps Gmail 发送邮件

    我已经阅读教程并查看示例两天了 但没有成功 我想在 NodeJS 环境中使用 Google Apps Gmail 帐户发送电子邮件 但是 我得到400来自谷歌API的响应 Error Bad Request code 400 errors
  • Maven 站点警告:存储库 url 'https://maven-repository.dev.java.net/nonav/repository' 无效

    我在一个多模块项目上使用 Maven 3 2 3 我想生成 checkstyle 和 findbugs 报告 因此我配置了以下内容
  • realloc后如何释放内存

    这段代码中释放内存的正确方法是什么 include