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();