malloc: *** 对象错误: 未分配被释放的指针 *** 在 malloc_error_break 中设置断点进行调试

2024-01-12

有人可以帮我弄清楚我在哪里收到此错误吗?我知道这可能是双重删除或类似的事情。对于背景,这是霍夫曼树的实现,您可以轻松地实现维基百科 http://en.wikipedia.org/wiki/Huffman_coding.

CharCountNode 类实现 http://pastebin.com/6CM9eman

int main()
{
  ifstream input;
  input.open("input.txt");

  MinPriorityQueue<CharCountNode> heap;
  map<char, int> m;

  while(input.good())
    m[input.get()] += 1;

  for( map<char, int>::const_iterator it = m.begin(); it != m.end(); ++it )
    heap.enqueue(CharCountNode(it->first, it->second));


  while(heap.getSize() > 1)
  {
    CharCountNode a, b, parent;

    a = heap.dequeue();
    b = heap.dequeue();
    parent = CharCountNode('*', a.getCount() + b.getCount());

    parent.left = &a;
    parent.right = &b;

    heap.enqueue(parent);
  }
}

问题出在这段代码上:

parent.left = &a;
parent.right = &b;

这是获取指向局部变量的指针,该变量将在下次循环时重新初始化。CharCountNode最终会尝试delete这些对象,但它们还没有被new分配。

你需要做left and right指向堆上分配的对象,因为这就是CharCountNode正在期待。就像是:

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

malloc: *** 对象错误: 未分配被释放的指针 *** 在 malloc_error_break 中设置断点进行调试 的相关文章

  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • C# 和 Javascript SHA256 哈希的代码示例

    我有一个在服务器端运行的 C 算法 它对 Base64 编码的字符串进行哈希处理 byte salt Convert FromBase64String serverSalt Step 1 SHA256Managed sha256 new S
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 当我使用“control-c”关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收“”

    我是套接字编程的新手 我知道使用 control c 关闭套接字是一个坏习惯 但是为什么在我使用 control c 关闭发送进程后 接收方上的套接字不断接收 在 control c 退出进程后 发送方的套接字不应该关闭吗 谢谢 我知道使用
  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • WPF 中的调度程序和异步等待

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

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • 获取没有非标准端口的原始 url (C#)

    第一个问题 环境 MVC C AppHarbor Problem 我正在调用 openid 提供商 并根据域生成绝对回调 url 在我的本地机器上 如果我点击的话 效果很好http localhost 12345 login Request
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框

随机推荐

  • 如何将 React.memo 应用于数组中的所有组件?

    是否可以通过 for 循环将 React memo 应用于组件数组 假设我有以下三个组成部分 const Item1 props gt const index props return div index div const Item2 p
  • 将each_with_index与map一起使用

    我想获取一个数组并将其设为订单列表 目前我正在尝试这样做 r a b c r each with index w index puts index 1 w map to a 1 a 2 b 3 c gt a b c 输出应该是 1 a 2
  • 从 python 脚本将文件上传到我的保管箱

    我想自动将文件从 python 脚本上传到我的 Dropbox 帐户 无论如何 我找不到只用用户 通行证来做到这一点 我在 Dropbox SDK 中看到的所有内容都与具有用户交互的应用程序相关 我只想做这样的事情 https api co
  • 如何正确安装 IntelliJ IDEA 的 Google Java Format 插件?

    我想安装IntelliJ IDEA 的 Google Java 格式插件 https plugins jetbrains com idea plugin 8527 google java format 我有最新的 2016 年社区版版本 版
  • laravel 未定义的偏移量:0

    我试图显示一条错误消息 以防所选字段在数据库中重复 为此 我使用 laravel 验证需要唯一 我在重定向时遇到问题 这是商店控制器 public function store rules array car gt array requir
  • 在 aws athena 中按日期时间查询解析 alb 日志时出错

    我已按照链接中提到的步骤在 Athena 中创建 ALB 表 我试图根据日期时间查询日志 但出现以下错误 Query SELECT client ip sum received bytes FROM default alb logs WHE
  • Java JTextArea KeyListener

    当我按下 ENTER 时 我的 JTextArea 开始一个新行 我只想对 doClick 方法执行其他操作 我该怎么做呢 textarea addKeyListener new KeyListener Override public vo
  • 在 AWS CloudFront 上启用 POST/PUT/DELETE?

    在 AWS CloudFront 中 我在 默认缓存行为设置 区域中的 允许的 HTTP 方法 中进行了设置 GET HEAD OPTIONS PUT POST PATCH DELETE 我的 CloudFront 链接到 AWS S3 存
  • 带有 .htaccess 的 HTTP 缓存标头

    我正在尝试配置我的 htaccess 文件来设置缓存时间 尝试了所有可能的配置 但没有任何效果 这是我的 HTML 中写的内容 这是我的 htaccess 文件中写入的内容 ExpiresActive On ExpiresDefault A
  • Python:从列表中删除奇数

    我编写了一个函数来从列表中删除奇数 如下所示 def remove odd l for i in l if i 2 0 l remove i print l return l remove odd 4 5 4 remove odd 4 5
  • 在 java(w).exe 进程列表中查找 .jar 的名称

    在我的公司环境中 这个脚本在大量计算机上运行 我偶尔会要求用户杀死该脚本 因为众所周知它有时会锁定 我正在想办法自己杀死它 我注意到我可以使用远程列出pslist然后使用杀死它pskill 现在的问题是 当有人运行多个 java 应用程序
  • 转换为自动引用计数 (ARC):“使用未声明的标识符”错误

    在一个非常大的项目中 我到处都使用了自动合成的属性 MyClass h file interface MyClass NSObject property nonatomic retain NSString deviceName proper
  • 如何直接从 UIWebView 将登录信息传递到网站而不需要再次登录?

    我想使用 UIWebView 在我的 iPhone 应用程序中打开一些网站 该网站需要用户名和密码 我有这些用户名和密码 我想知道是否可以在 UIWebView 中打开网站而无需任何登录屏幕 我的意思是 因为我已经有了用户名和密码 我可以使
  • 如何防止 Java 中出现 403 HTTP 错误代码?

    我使用简单的代码来获取htmlhttp www ip adress com http www ip adress com 但它显示错误http代码403 我在其他网站 例如google com 的程序中尝试过 它可以工作 我也可以在浏览器中
  • 如何使用 R formattable 包更改表标题行的外观

    我正在使用 R 中的 formattable 包来生成 HTML 表 我可以使用格式化程序来自定义表中数据值的外观 例如字体大小 颜色等 但我不知道如何更改表标题行的外观 我可以使用 col names 更改实际的列名称 但无法更改它们的外
  • 在java中获取模式值

    有人知道如何从数组中获取模式值吗 例如 如果我有一个数字不同的数组 我如何使用Java来查找出现次数最多的数字 完成时间为 O n 而不是 O n 2 需要长度 gt 0 的数组 public static int getMode int
  • 在 GDB 中创建 C++ 字符串

    我在创建时遇到问题std string 或者任何 C 对象 我猜 在 GDB 中 我尝试了以下多种变体 但似乎都不起作用 gdb p std string hello A syntax error in expression near he
  • 迭代 json 对象来绘制柱形图?

    I use google load visualization 1 packages columnchart google setOnLoadCallback drawChart function drawChart response al
  • NodeJS 中用于 API 的存根 DynamoDB

    我在存根 DynamoDB 调用以进行 API 测试时遇到问题 我正在使用无服务器摩卡 想要从端到端的角度测试我的 API 项目结构并不简单 但在 API 文件本身内部 我对不同的类文件进行了单独的调用 以实际使用 DynamoDB 函数
  • malloc: *** 对象错误: 未分配被释放的指针 *** 在 malloc_error_break 中设置断点进行调试

    有人可以帮我弄清楚我在哪里收到此错误吗 我知道这可能是双重删除或类似的事情 对于背景 这是霍夫曼树的实现 您可以轻松地实现维基百科 http en wikipedia org wiki Huffman coding CharCountNod