我需要使用一个特殊的库来跟踪我的内存泄漏位置malloc()= allocate( )
和free( ) = unallocate( )
.
我正在尝试完成释放 alinked-list
但似乎“根”值没有被释放。
typedef struct _node {
struct _node *child;
char *command;
} Command_list;
void delete_commands(Command_list **root)
{
Command_list *temp;
while( *root != NULL ){
temp = (*root)->child;
//printf("STRING: %s\n", *root->command );
unallocate( *root );
*root = temp;
}
}
调用它的函数
void file_processing( .... ){
Command_list *root = allocate(sizeof (Command_list));
root = NULL;
....
delete_commands( &root );
}
}
我相信
Command_list *root = allocate(sizeof (Command_list))
由于某种原因没有被正确地取消分配。任何人都可以给我一些提示吗?
更新: 我发现不是
Command_list *root = allocate(sizeof (Command_list));
root = NULL;
这有效:
Command_list *root = NULL;
有人可以向我解释为什么第一种方法行不通吗?谢谢!:)