I may be wrong, but I think that in your BinarySearchingTree.c file in binary_search_tree_destructor you should use pointer to the tree as an argument instead of actual tree. It causes the thing, that you are not actually destroying actual tree. Besides that you make a copy of your tree in that function and destroys it, but not the actual tree you wanted. I may be wrong because of pointer copies in that function, but to make sure you are destroying the tree correctly and to make it cleaner, I think that's would be better.
And thank you for the lib and for videos, sorry if I'm wrong!
I may be wrong, but I think that in your BinarySearchingTree.c file in binary_search_tree_destructor you should use pointer to the tree as an argument instead of actual tree. It causes the thing, that you are not actually destroying actual tree. Besides that you make a copy of your tree in that function and destroys it, but not the actual tree you wanted. I may be wrong because of pointer copies in that function, but to make sure you are destroying the tree correctly and to make it cleaner, I think that's would be better.
And thank you for the lib and for videos, sorry if I'm wrong!