C++ 运行失败(原因不明)

C++ 运行失败(原因不明),c++,stack,binary-tree,runtime-error,C++,Stack,Binary Tree,Runtime Error,我不知道是什么导致程序失败,除了它与试图给左右两个孩子分配一些指针有关。没有错误消息,程序无法运行。我只是假设这是因为我分配的指针不正确 下面是结构: struct TreeNode { Type nodeinfo; BinaryTree<Type> *left; BinaryTree<Type> *right; }; 任何关于如何分配指针的见解都将不胜感激。BinaryTree*b

我不知道是什么导致程序失败,除了它与试图给左右两个孩子分配一些指针有关。没有错误消息,程序无法运行。我只是假设这是因为我分配的指针不正确

下面是结构:

struct TreeNode
    {
            Type nodeinfo;
            BinaryTree<Type> *left;
            BinaryTree<Type> *right;
    };
任何关于如何分配指针的见解都将不胜感激。

BinaryTree*b,*c;
BinaryTree<Type> *b,*c;
...
b->root = s.top();
...
c->root = s.top();
... b->root=s.top(); ... c->root=s.top();
您从未初始化指针
b
c

你应该自己发现这些错误。来到这个网站作为你对错误的第一道防线是一个非常糟糕的主意。你不会学会如何调试。没有我们的帮助,你怎么会发现这些问题?使用编译器、valgrind等分析工具、调试器,甚至手动执行代码


了解如何通过启用编译器警告来发挥编译器的优势。GNU和clang在编译时经过优化并启用了足够的警告,将捕获类似的错误。了解如何使用调试器。了解如何手动执行代码。

您正在尝试取消对未初始化指针的引用。在某个地方有一条错误消息,这是访问冲突,而且是严重的。在编写另一行代码之前,您应该找到输出消息转储到的位置。
tree.setInfo('b');
tree.setInfo('c');
tree.setSubtree('-');
BinaryTree<Type> *b,*c;
...
b->root = s.top();
...
c->root = s.top();