gpt4 book ai didi

c - 以下代码是否泄漏内存

转载 作者:太空宇宙 更新时间:2023-11-04 06:41:34 25 4
gpt4 key购买 nike

代码如下:在将指针分配给保存类似节点指针的 root->pointers[0] 之后,我释放了 btreeRight。释放它后我的程序不稳定并且没有得到平衡二叉树。如果我正确释放内存,你能告诉我吗?如果没有,请建议我如何释放它?

         int order =5;

typedef struct BTREE_HELP {
//
}*BTREE,BTREE_NODE;

BTREE btree_Start(void){
BTREE TempBtreeNode;
TempBtreeNode = malloc(sizeof(BTREE_NODE));
TempBtreeNode->keys=malloc((order-1) * sizeof(int));
TempBtreeNode->pointers=malloc((order) * sizeof(void *) );

TempBtreeNode->isLeaf = FALSE;
TempBtreeNode->numKeys = 0;
TempBtreeNode->parent = NULL;
TempBtreeNode->next = NULL;
return TempBtreeNode;
}


BTREE btree_NewRoot(int key,BTREE btreeRight) {
BTREE root;
root = btree_start();
root->keys[0] = key;
root->pointers[0] = btreeRight;
root->numKeys++;
root->parent = NULL;
btreeRight->parent = root;
free(btreeRight->keys);
free(btreeRight->pointers);
free(btreeRight);
return root;
}

最佳答案

您没有内存泄漏。但是你为什么要释放内存?您正在将 btreeRight 存储在 root 中。

也许更好的缩进也不会出错。

关于c - 以下代码是否泄漏内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7393427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com