c++ - 段错误(代码已转储)

标签 c++ linux qt

我创建了两个如下所述的文件

csvreport.h

int flag = 0; //declared && defined

表.cpp

csvreport* csvreports;
csvreports->flag = 1;

它显示段错误(代码已转储)
任何人都可以提供解决方案吗??

最佳答案

csvreport* csvreports; 创建未初始化的指针。尝试使用未初始化的指针会导致未定义的行为。

在堆栈上创建此变量,不带指针:

csvreport csvreports;

或者,如果需要指针 - 首先分配它:

csvreport* csvreports = new csvreport;
csvreports->flag = 1;

或者通过现代 C++11 方式使用唯一指针:

auto csvreports = std::make_unique<csvreport>();
csvreports->flag = 1;

关于c++ - 段错误(代码已转储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40781486/

相关文章:

c++ - 如何在linux数据类型中定义#define S64_MIN?

linux - 使用 Bash shell 中内置的 'command'

c++ - QTableView排序信号?

c++ - QGridLayout 没有按预期工作

c++ - 是否有像 ADTF2 中那样的结构化属性?

c++ - 我应该如何处理 libpq for postgresql 中的错误

linux - Bash 和 Linux shell 一样吗?

c++ - QT Creator Main.cpp 主窗口.cpp

c++ - 多行函数声明参数的 Clang 格式问题

c++ - 如何解决系统和库依赖项之间的 C++ 冲突