不断得到分段错误:11,我不确定为什么
Keep getting Segmentation fault: 11 and Im unsure why?
我需要创建一个程序,该程序在矩阵中从命令行中查找单词,然后将它们着色为红色。这是从左到右阅读单词的第一部分。我不断收到分段错误:int main 中第二个嵌套的 for 循环中有 11 个。我知道我不称函数为"正确",但这不应该影响分段错误,不是吗?任何帮助不胜感激,非常感谢!
#include "colormod.h"
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(int argc, char *argv[]){
Color::Setting red(Color::FG_RED);
Color::Setting def(Color::FG_DEFAULT);
for(int i = 0; i < argc; i++){
argv[i];
}
int x, y;
cin >> x >> y;
vector < vector < char > > matrix;
matrix.resize(x);
for(int i = 0; i < matrix.size(); i++){
matrix[i].resize(y);
for(int k = 0; k < matrix.size(); k++){
cin >> matrix[i][k];
}
}
//THIS IS WHERE THE SEGMENTATION FAULT IS
vector < vector < bool > > empty;
for(int i = 0; i < matrix.size(); i++){
for(int k = 0; k < matrix.size(); k++){
if(empty[i][k] == true){
cout << red << matrix[i][k] << def << " ";
}
else{
cout << matrix[i][k] << " ";
}
}
cout << endl;
}
}
//THIS IS WHERE THE SEGMENTATION FAULT ENDS
void right(vector < vector < char > > &matrix, vector < vector < bool > > &empty, char *word, int x, int y){
bool check = false;
int count = 0;
int wordLength = strlen(word);
for(int i = 0; i < wordLength; i++){
if(y < matrix.size()){
if(word[i] == matrix[x][y]){
count++;
}
}
y++;
}
if(count == wordLength) check = true;
if(check){
y = y - wordLength;
for(int i = 0; i < wordLength; i++){
if(y < matrix.size()){
if(word[i] == matrix[x][y]){
empty[x][y] = true;
}
}
y++;
}
}
}
vector < vector < bool > > empty;
创建一个空向量。 然后你尝试访问其中的元素
if(empty[i][k] == true)
由于向量中没有任何内容,因此这将是未定义的行为和分割错误的原因。
您还对 for 循环中的嵌套循环使用了错误的大小。 您正在使用外部向量大小作为内部向量的大小,该大小可能正确,也可能不正确。 您的 for 循环应如下所示
for(int i = 0; i < matrix.size(); i++)
for(int k = 0; k < matrix[i].size(); k++)
或者你可以使用基于范围的循环,如
for (auto& row : matrix)
{
//now row is one row of the outer vector
for (auto& col : row)
{
// now col is one element in the row
}
}
相关文章:
- 我不确定为什么代码没有运行,它在编译时抛出错误,说它无法找到 PrintArray()
- 获得访问违规的阅读位置,但不确定为什么
- 我不确定为什么我会为此获得输出?
- C++ 抛出读取访问冲突错误,但我不确定为什么。平铺滑块益智游戏
- 我一直得到一个期望;错误,我不确定为什么
- 尝试使用函数时会出现错误,不确定为什么
- 我得到一个无限的循环,我不确定为什么或如何修复它
- 在我的代码覆盖本身时遇到麻烦,我不确定为什么
- 不确定为什么这不返回元素的索引?
- 我不确定为什么我会从功能中获得此输出
- 学习左值和右值,但不确定为什么这个代码有效
- 默认情况下构造函数插入数据后,我没有得到任何输出,但我不确定为什么不
- 标识符"fill_vector"未找到,我不确定为什么
- 不确定为什么代码不能C++简单
- 不断得到分段错误:11,我不确定为什么
- C++考试修订版,不确定为什么正确答案是什么
- 我不确定为什么我会收到 NULL 指针取消引用错误
- 我不确定为什么我的 QThread 模式被阻塞
- 通过MCQ测试,我们不确定为什么这个函数原型会失败
- 我收到 [错误] 'Eintrag'没有命名类型,我不确定为什么