链式哈希表内存释放时触发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
相关产品推荐
相关产品推荐

