在下面的程序中,我需要对哈希表、列表元素和唯一字调用 free()。我尝试了几件事,但都破坏了程序或增加了错误消息。一些尝试在注释中并加粗。
有人知道哪里以及如何调用免费电话吗?因为涉及到指针,所以很困惑。
h_ptr *htable;
int tsize;
void new_table(int size)
{
tsize = size;
htable = (h_ptr *) calloc(size, sizeof(h_ptr));
if (!htable) {
fprintf(stderr, "Couldn't allocate hash array, exiting\n");
exit(1);
}
for(int i=0; i<size; i++)
{
htable[i]=NULL;
}
}
最佳答案
防止内存泄漏始终是相同的。如果您动态分配了一些内存,请正确删除它。因此,如果你的函数在某处使用了 malloc()
,也可以在某处写入 free()
以避免内存泄漏
关于c - 如何修复该程序中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15301612/