-1
私はカスタムstruct
ミストを持っています。valgrind in cを使用したメモリの損失
typedef struct mystruct
{
int data;
struct mystruct * parent;
struct mystruct * child;
struct mystruct * next;
}mystruct;
今、私は機能にtraverse()
mystruct * create(mystruct * root)
{
mystruct * newNode=malloc(sizeof(mystruct));
//change some pointers like make newNode->parent=root->parent
//
//
return newNode;
}
void traverse(mystruct * root)
{
if(root==NULL)
return;
//here I am calling a new function
if() // somecondition
{
mystruct * newNode=create(root);
root=NULL;
free(root);
root=newNode;
}
traverse(root->child);
traverse(root->next);
}
void delete(mystruct * root)
{
if(root==NULL)
return;
delete(root->child);
delete(root->next);
free(root);
}
をこの体mystructの後順トラバーサルをしていたとしても最後に私の構造を解放した後、valgrind
はnewNode
が作成されることに起因する記憶喪失を示しています。これらのメモリ損失をどのように取り除くことができますか?