我写了一个程序来测试我的二叉树,当我运行它,程序似乎崩溃(btree.exe已停止工作,Windows正在检查解决方案...)。段落错误后返回0;
当我通过调试器运行它,并将断点放在我怀疑导致它的函数destroy_tree()上时,它似乎按预期运行并返回到主函数。主程序又从程序中返回,但随后光标跳回到destroy_tree()并在其内部回避。
最小代码示例如下,因此它可以立即运行。我的编译器是MinGW,我的调试器是gdb(我使用的是Code :: Blocks)。另外,我计划从Code :: Blocks内置调试器切换到DDD以调试这些问题。我听说DDD可以直观地显示指向对象的指针,而不是显示指针的地址。你认为制作交换机将有助于解决这些类型的问题(数据结构和算法问题)吗?
谢谢,我忘了当地的析构函数被调用时,主要的回报 – Steve 2009-06-14 19:53:26
酷。尽管让我建议你将所有东西都重置为NULL,但这是一个很好的编程习惯。 – PaV 2009-06-14 19:56:25