小编Sha*_*ant的帖子

调用free()后内存未释放

我有一个简短的程序,通过向其添加节点来生成链接列表,然后释放链接列表分配的内存.

Valgrind不报告任何内存泄漏错误,但该过程继续保持分配的内存.

在将sizeof(structure_name)分配的内存更改为固定数512后,我才能修复错误.(请参阅注释代码)

这是一个错误还是正常的操作?这是代码:

#include <execinfo.h>
#include <stdlib.h>
#include <stdio.h>


typedef struct llist_node {
  int ibody;
  struct llist_node * next;
  struct llist_node * previous;
  struct llist * list;
}llist_node;

typedef struct  llist {
  struct llist_node * head;
  struct llist_node * tail;
  int id;
  int count;
}llist;

llist_node * new_lnode (void) {
  llist_node * nnode = (llist_node *) malloc ( 512 );
  //  llist_node * nnode = (llist_node *) malloc ( sizeof(llist_node) );
  nnode->next = NULL;
  nnode->previous = NULL;
  nnode->list = …
Run Code Online (Sandbox Code Playgroud)

memory malloc free memory-leaks

2
推荐指数
1
解决办法
3435
查看次数

标签 统计

free ×1

malloc ×1

memory ×1

memory-leaks ×1