我有一个简短的程序,通过向其添加节点来生成链接列表,然后释放链接列表分配的内存.
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)