c++ - Clion:进程以退出代码 139 结束
问题描述
我正在用 C++ 编写一个拼贴练习程序,但我不知道为什么会看到这个错误
进程以退出代码 139 结束(被信号 11 中断:SIGSEGV)
它只是用于测试课程并且它不完整
在 main 中,如果我删除add('a');
程序成功运行,但任何函数调用都会导致此错误!
问题是以括号/括号形式读取一棵树并以链表形式制作一棵树
#include<iostream>
using namespace std;
class Tree
{
public:
char data;
Tree *right;
Tree *left;
};
Tree *root;
Tree *temp;
void add(char c)
{
root->data = c;
}
void addR(char c)
{
temp = new Tree;
temp->data = c;
root->right = temp;
}
void addL(char c)
{
temp = new Tree;
temp->data = c;
root->left = temp;
}
int main()
{
cout<<2;
add('a');
return 0;
}
解决方案
Tree *root;
void add(char c)
{
root->data = c;
}
int main()
{
cout<<2;
add('a'); // <---
return 0;
}
add('a')
通过访问 . 中未初始化的指针root
来调用未定义的行为root->data = c;
。你应该先初始化它:
root = new Tree();
推荐阅读
- python - 你可以在 Python 类(Django 模型)中引用 self 的地方?
- node.js - Foreach 循环未正确显示内容
- python - 循环遍历列表的嵌套列表
- scala - 如何使用scala在elasticsearch中获取_delete_by_query api的状态
- mysql - 无法在 Linux 中安装 mysqlclient
- python - 在 django python 中运行命令 docker-compose up 时出错
- javascript - 在 localStorage 中获取和设置 javascript 值
- reactjs - 如何覆盖全选动作?材料表
- php - 如何在php中将值作为时间返回
- npm - travis ci npm 发布错误“缺少 api_key”