释放树,但 IDE 随着时间的推移获得一些内存
Freeing tree, but IDE gains a bit of memory over time
我正在为我的树使用以下免费功能:
void freeTree(struct node *tree) {
if (tree == NULL) return;
freeTree(tree->left);
freeTree(tree->right);
free(tree);
}
我正在这样创建一个 tree/operating:
struct node *root = NULL;
root = createTree(testNodes);
inOrderPrint(root);
freeTree(root);
节点结构的定义:
struct node {
int val;
int color;
struct node *parent;
struct node *left;
struct node *right;
};
我注意到在 运行 之后(很多小时),我的 IDE(我正在使用 CLion)的内存开始增加(很少)。我发帖询问我的 freeTree
功能是否正确实施以排除这种情况,并查看是否有其他原因导致这种缓慢的内存积累。
假设您的树实际上是以 struct node
成员名称所暗示的方式构建的,并且节点的 left
和 right
指针设置为 NULL
对于分别没有左或右子节点的节点,您的 freeTree()
函数将释放与其参数指向其根节点的(子)树关联的所有内存。如果你有泄漏,它在别处。
我正在为我的树使用以下免费功能:
void freeTree(struct node *tree) {
if (tree == NULL) return;
freeTree(tree->left);
freeTree(tree->right);
free(tree);
}
我正在这样创建一个 tree/operating:
struct node *root = NULL;
root = createTree(testNodes);
inOrderPrint(root);
freeTree(root);
节点结构的定义:
struct node {
int val;
int color;
struct node *parent;
struct node *left;
struct node *right;
};
我注意到在 运行 之后(很多小时),我的 IDE(我正在使用 CLion)的内存开始增加(很少)。我发帖询问我的 freeTree
功能是否正确实施以排除这种情况,并查看是否有其他原因导致这种缓慢的内存积累。
假设您的树实际上是以 struct node
成员名称所暗示的方式构建的,并且节点的 left
和 right
指针设置为 NULL
对于分别没有左或右子节点的节点,您的 freeTree()
函数将释放与其参数指向其根节点的(子)树关联的所有内存。如果你有泄漏,它在别处。