You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

链式哈希表内存释放时触发Double free错误求助

链式哈希表内存释放时触发Double free错误求助

先提前说声抱歉,直接贴了一堆代码,但实在想不到更好的方式来清晰展示我的问题了。

我正在做一个学校项目,是烘焙店的模拟程序。考虑到时间和空间效率的要求,我觉得用链式哈希表来实现配方系统是最优解——这个系统需要支持任意数量的配方,每个配方还能包含任意数量的配料。

实现过程中我用malloc分配了几处内存:

  • 给哈希表里的每个Recipe结构体实例分配内存
  • 另外分配了两个数组,分别用来存储字符串(配料名称)和整数(配料数量)

但当我尝试遍历哈希表释放这些内存时,总是会触发double free错误,不管怎么调整代码都解决不了。下面是Valgrind的输出信息:

==3362== Invalid free() / delete / delete[] / realloc()
==3362==    at 0x484988F: free (in /usr/libexec/v...)

备注:内容来源于stack exchange,提问作者LangleyMann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:25:28