当检查变量和0是否相等时,给出段错误(调试时)
C++ When checking for equality between a variable and 0, gives segment fault (when debugging)
假设我有一个这样的数组:
1 0 0
0 2 1
0 1 0
所以我想检查2上面的数字是否为0,如果为真则将其更改为2。假设i = 1且j = 1:
string var = "2";
if(tab[i][j] == var && tab[i-1][j] == "0") {
tab[i-1][j] = "2";
}
这里是我得到段错误的地方,如果我在if语句中把0改为1,它工作得很好。为什么?甚至尝试将2d数组变为int,同样的问题。
将"0"更改为"0"或反之亦然=相同的问题。
for(int i = 0; i < n; i++) {
vector<string> current_row;
for(int j =0; j < m; j++) {
myfile >> buff;
current_row.push_back(buff);
}
tab.push_back(current_row);
}
就是这样填充的
似乎您正在访问数组边界之外的内存。如果tab[0][?]== var.这将导致您的条件检查选项卡[-1][?]]并产生异常。
相关文章:
- 变量被错误地设置为 204
- 堆栈中大小变量输入错误 (C++)
- 为什么PyImport_ImportModule python 3.7.2 中出现段错误?
- 为什么在访问 vtkRenderWindow 的"交互器"变量时会发生段错误?
- 全局向量导致 C++ 程序结束时出现段错误
- 为什么重载运算符<<打印特征类成员会导致段错误?
- 更改条件段错误
- 使用 TTF_RenderText() 加载字体时获取段错误 TTF_OpenFontRW()
- 注册对对象工厂的调用会导致段错误
- 创建 std::函数,它返回具有函数成员值的变量.分段错误
- pthread_create在构造函数段错误中
- Nanoflann发现邻居提出段错误
- C++ 中的构造函数、继承、堆栈、堆、this-pointer 和段错误
- 具有unique_ptr的 CRTP 会导致段错误
- 增强纤维work_stealing屏障会导致段错误
- Pthread段错误,使用指向main中变量的指针
- 为什么访问我的引用捕获变量会导致我的 lambda 函数出现段错误?
- 在 for 循环中使用变量,导致段错误
- 返回对 std::函数包装的 lambda 中静态变量的引用会导致段错误
- 当检查变量和0是否相等时,给出段错误(调试时)