为什么在#define上出现段错误
Why a segfault on #define?
我不明白为什么我的程序在#define
之后出现错误:
if(QProcess::systemEnvironment().filter("toto").size() == 1 )
if(!QProcess::systemEnvironment().filter("toto").at(0).contains("13"))
#define tata
我在另一堂课上使用这个代码,他跑得像个老板:p
if为false时程序段错误…
我知道#define是一个预编译器指令,我理解段错误,但为什么同样的代码在我的另一个类中运行没有问题,如果我的环境变量被改变,程序接受修改。并且我指定代码没有重新编译…
#define
是一个预编译器指令,它被编译器解析和使用,而不是在运行时。所以它不符合if
条件。因此,你的if
实际上是在调节这段代码之后的执行。不管是什么
解决方案:使用布尔变量,而不是宏。
bool tata = false;
if(QProcess::systemEnvironment().filter("toto").size() == 1 )
if(!QProcess::systemEnvironment().filter("toto").at(0).contains("13"))
tata = true;
但细节将取决于您首先使用tata
做什么
相关文章:
- 为什么PyImport_ImportModule python 3.7.2 中出现段错误?
- 为什么在访问 vtkRenderWindow 的"交互器"变量时会发生段错误?
- 全局向量导致 C++ 程序结束时出现段错误
- 为什么重载运算符<<打印特征类成员会导致段错误?
- 更改条件段错误
- 使用 TTF_RenderText() 加载字体时获取段错误 TTF_OpenFontRW()
- 注册对对象工厂的调用会导致段错误
- pthread_create在构造函数段错误中
- Nanoflann发现邻居提出段错误
- C++ 中的构造函数、继承、堆栈、堆、this-pointer 和段错误
- 具有unique_ptr的 CRTP 会导致段错误
- 增强纤维work_stealing屏障会导致段错误
- 当我返回指向结构的指针向量时出现段错误
- C++为什么我的代码没有爆炸/段错误?
- Pthread段错误,使用指向main中变量的指针
- C++ 模板中的段错误
- 相当于Windows/MSVC上的段错误?
- 为什么我的 LLVM JIT 实现出现段错误?
- 为什么访问我的引用捕获变量会导致我的 lambda 函数出现段错误?
- 为什么自删除的全局 Vulkan 实例仅在添加层时才导致段错误?