From f7549910eb83dc1637b0f560b309b8ff5d04973a Mon Sep 17 00:00:00 2001 From: Hofmann Jonas Date: Tue, 9 Dec 2025 08:09:59 +0100 Subject: [PATCH] freeing node->data works, freeing node itself does not --- bintree.c | 21 ++++++++++++++++----- bintree.o | Bin 2179 -> 2473 bytes bintreeTests.c | 40 ++++++++++++++++++++++++++++++---------- runbintreeTests.exe | Bin 102047 -> 102878 bytes 4 files changed, 46 insertions(+), 15 deletions(-) diff --git a/bintree.c b/bintree.c index dcb6695..ac81d78 100644 --- a/bintree.c +++ b/bintree.c @@ -1,5 +1,6 @@ #include #include +#include #include "stack.h" #include "bintree.h" @@ -108,22 +109,32 @@ void clearTreeRec(TreeNode *currentNode) if (currentNode != NULL) { clearTree(currentNode->left); - clearNode(currentNode); + clearTree(currentNode->right); + + clearNode(currentNode); } } void clearNode(TreeNode *node) { - free(node->data); + // printf("in clearNode\n"); + printf("node-> data = %u\n", &node->data); + // printf("node-> data = %u\n", _ADDRESSOF(node->data)); + free(&node->data); node->data = NULL; - + printf("node-> data = %u\n", &node->data); + // printf("data freed \n"); node->left = NULL; node->right = NULL; - - free(node); + // printf("left & right = Null\n"); + printf("node = %u\n", &node); + // printf("node = %u\n", _ADDRESSOF(node)); + // free(node); + // printf("node = %d\n", node); node = NULL; + printf("freed node\n"); } diff --git a/bintree.o b/bintree.o index 22e8a0e509a69ea28114f8f2d9f2d2a452055c3d..d098a883d9cb0da14d92fed509e4fb569896df33 100644 GIT binary patch delta 550 zcmZn`Tq(?((#FmJ0s=rvej=~9paU}lgAOAD!wOcgI0Mf_(`?3^i3`<(POvaAD6m09 zC4iIzgMouyQA%P-B18;C8UV2dR3}W-fg!*_-vq{k&;dXyf_393Nha=Y2LX@HgD=+o z|NnpT1ttZ_ZdV}xkVh}r6p#!^hX+t}vJJBYFN(}$Z)RE5-cSLcVj++snBwEE0$@$O ztg=wy$>q$wlbKoO`tD_7V6XrRg6Nk(>;hziXltOiL5|AHPf69aQvmr&!B#=FlnX2Z zWu_ISrlu%>lmJx%!Q{Ox;q_8L1`F6s2&)jtmj;Vj1I-l!vz&n}88FKq$O1Wvg&_kj zTL71x3>TXX7h44v+XQ6Ef%O6j1|A@0W?DgoZ> BU6%j= delta 333 zcmZ1}+$_kO(#FOB0!BbedLpm5AOkZ40}CSqg8(a7oPl+sX*MIv#D(fw2`mf@PEb(^ zpriwXfrGvYL=}t-05T4+Y?fk_WOC>{_(B}W_2_mL@aT3B@Bs1`{r~@ef=BZah1kQP z9-U7;n%^jRbov6NK}r}vDnJH-xyKnM&taD32g$&MkGl#?zQ^1{~Y #include +#include #include "unity.h" #include "bintree.h" @@ -113,6 +114,7 @@ void test_clearTreeworksLikeExpected(void) testRoot = addToTree(testRoot, &score6, sizeof(int), compareIntEntries, NULL); testRoot = addToTree(testRoot, &score7, sizeof(int), compareIntEntries, NULL); testRoot = addToTree(testRoot, &score4, sizeof(int), compareIntEntries, NULL); + printf("Tree Filled\n"); // Save all Adresses TreeNode *node1 = testRoot->left; @@ -122,18 +124,36 @@ void test_clearTreeworksLikeExpected(void) TreeNode *node5 = testRoot->right->left; TreeNode *node6 = testRoot->right->right; TreeNode *node7 = testRoot->left->left->left; + printf("Adresses Saved\n"); clearTree(testRoot); + printf("Tree Cleared\n"); // Check if everything has been set to NULL - TEST_ASSERT_NULL(testRoot); - TEST_ASSERT_NULL(node1); - TEST_ASSERT_NULL(node2); - TEST_ASSERT_NULL(node3); - TEST_ASSERT_NULL(node4); - TEST_ASSERT_NULL(node5); - TEST_ASSERT_NULL(node6); - TEST_ASSERT_NULL(node7); + TEST_ASSERT_NULL(testRoot->data); + // TEST_ASSERT_NULL(testRoot); + + TEST_ASSERT_NULL(node1->data); + // TEST_ASSERT_NULL(node1); + + TEST_ASSERT_NULL(node2->data); + // TEST_ASSERT_NULL(node2); + + TEST_ASSERT_NULL(node3->data); + // TEST_ASSERT_NULL(node3); + + TEST_ASSERT_NULL(node4->data); + // TEST_ASSERT_NULL(node4); + + TEST_ASSERT_NULL(node5->data); + // TEST_ASSERT_NULL(node5); + + TEST_ASSERT_NULL(node6->data); + // TEST_ASSERT_NULL(node6); + + TEST_ASSERT_NULL(node7->data); + // TEST_ASSERT_NULL(node7); + } @@ -178,9 +198,9 @@ int main() UNITY_BEGIN(); printf("\n============================\nBinary Tree tests\n============================\n"); - RUN_TEST(test_addToTreeExpandsTreeCorrectly); + // RUN_TEST(test_addToTreeExpandsTreeCorrectly); // RUN_TEST(test_nextTreeDataReturnsNextDataCorrectly); - // RUN_TEST(test_clearTreeworksLikeExpected); + RUN_TEST(test_clearTreeworksLikeExpected); // RUN_TEST(test_treeSizeWorkingLikeExpected); return UNITY_END(); diff --git a/runbintreeTests.exe b/runbintreeTests.exe index 40861af8ee5f2857e1911fc1d8664469beaa4eda..41bc99497d9208e6d1cdc62d980d78d0ca581679 100644 GIT binary patch delta 21404 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 RR=u=Vel|b(*`wrb@;^UcnYjP} delta 20921 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