簡體   English   中英

以下代碼是否會泄漏內存

[英]Does the following code leaks memory

代碼如下:我解放了btreeRight assiging的指針后root->pointers[0]持有類似node.After的釋放它在我的計划是不穩定的,沒有得到均衡的B樹指針。 您能否讓我知道我是否正確釋放了內存? 如果沒有,請提出我將如何釋放它?

         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

也許更好的縮進不會錯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM