我创建了两个如下所述的文件
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/