抛出的例外:阅读访问违规.树是nullptr.如果有此例外的处理程序,则可以安全地继续该程序
Unhandled exception thrown: read access violation. Tree was nullptr. If there is a handler for this exception, the program may be safely continued
我正在尝试获取C 中所有整数的总和,但是每当我运行程序时,它都会随着此错误而破裂:
丢弃的例外:阅读访问违规。树是nullptr。如果有此例外处理程序,则可以安全地继续该程序
这是我的功能:
int sigma(Node<int> *Tree)
{
int sum = 0;
if (Tree->item == NULL)
{
return 0;
}
else
{
sum = sum + sigma(Tree->left);
sum = Tree->item;
sum = sum + sigma(Tree->right);
}
return sum;
}
这是我的标题文件:
template <typename T>
class Node
{
public:
Node(T itm, Node *lft, Node* rht);
Node(T itm); // for creating a leaf node
~Node();
void printTree();
bool searchTree(T key);
bool search(T word);
int depth(Node *tree);
T item;
Node *left, *right;
};
template <typename T>
Node<T>::Node(T itm)
{
item = itm;
left = nullptr;
right = nullptr;
}
template <typename T>
Node<T>::Node(T itm, Node *lft, Node *rht)
{
left = lft;
right = rht;
item = itm;
}
template <typename T>
Node<T>::~Node()
{
delete[] left, right;
}
有人对我如何解决此问题有任何想法吗?
添加检查树== null在开始
int sigma(Node<int> *Tree)
{
int sum = 0;
if (Tree == NULL || Tree->item == NULL)
{
return 0;
}
else
{
sum = sum + sigma(Tree->left);
sum = sum + Tree->item;
sum = sum + sigma(Tree->right);
}
return sum;
}
相关文章:
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 为什么我的 IExtractIcon 处理程序没有被调用?
- 在遍历处理程序的向量时注册和注销处理程序
- 有可能在信号处理程序中设置promise吗
- 在信号处理程序中捕获C++未处理的异常并恢复应用程序
- 在C++程序中使用的迭代器中未处理的异常
- 有关图像处理应用程序的硬件和软件安全性的建议
- 通过安装信号处理程序关闭多线程应用程序
- QDateTime::toString() 在退出处理程序中使用时失败
- 如何在 WindowProc 处理程序中区分箭头键和数字键盘?
- async_write完成处理程序最早何时完成?
- C++事件系统 - 多态事件和事件处理程序
- 使用信号处理程序处理从 FIFO 接收的数据
- 使用独立的 c++ 程序处理用 C 编写的字符设备驱动程序
- C 程序处理两个文件,而不是一个文件
- 是什么让这个程序处理缓慢?(C++)
- QT 中的应用程序>处理消息?
- MongoDB C++驱动程序处理副本集连接故障
- 使用 OpenCV 程序处理多页 PDF