c - 如何修复该程序中的内存泄漏

标签 c

在下面的程序中,我需要对哈希表、列表元素和唯一字调用 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/

相关文章:

c - C 中使用 read() 系统调用读取字符串

c - 将整数类型转换为指针时出现整数指针赋值故障

c - 如何将字符串作为函数参数传递

c - 海湾合作委员会警告: assignment makes integer from pointer without a cast

C编程 : Does Modulus Ignore Leading Zeros in Result ? 如何停止?

c - 当用户给出输入时,在 C 中遍历和打印队列的行为有所不同

c - 调试信息: Run-Time Check Failure #2 - Stack around the variable 'IpNetRow2' was corrupted

c - 使用 scanf 一次扫描多个字符和整数

c - 将指针作为函数参数传递并在 C 中返回的基本原理

java - Java 中的 C 指针等价