【发布时间】:2021-08-06 06:06:15
【问题描述】:
我正在制作可以采用后缀表达式的程序,然后将创建该表达式的二进制表达式树。我的程序运行完美。我正在通过复制/粘贴一些示例后缀表达式来测试我的程序,但问题是现在它是不按顺序打印,后订购和预购,但实际上它正在打印一个奇怪的字符。在测试时我可能不小心按下了功能键。我不确定是什么导致了这个问题。请帮我找出我的错误。
【问题讨论】:
-
(struct BTstack*)malloc(sizeof(struct BTstack))-- 为什么在 C++ 程序中使用malloc?您正在调用delete,并使用malloc分配内存。那是未定义的行为。另外,你为什么在不需要的地方到处使用关键字struct?看起来您正在尝试编写 C 代码,而不是 C++。 -
-PaulMcKenzie 我正在学习数据结构,教授指示将其仅用于学习目的……这不是现在的问题。我已经跟踪了整个程序,它甚至可以正常工作,但是现在我不知道是什么导致了这个问题。要么是代码块的编译器错误,要么是我的错误。请帮助我。我将永远感激你。
-
@AreebaJunaid “要么是代码块的编译器错误......” 这是极不可能的。按照我的建议做,使用调试器来遍历你的代码,并调查发生了什么,最后找出你的错误。您可以看到变量在每一步中的变化情况。
-
@AreebaJunaid “这不是现在的问题” 这是一个非常大的问题!它基本上使您的程序具有未定义的行为,并且您不再相信它会做任何合理的事情。
标签: c++ data-structures struct binary-search-tree codeblocks