新编辑:当我尝试运行程序时,继续收到消息"Segmentation Fault: 11",有什么想法吗?

New Edit: Continue to receive msg "Segmentation Fault: 11" when I try to run the program, any ideas?

本文关键字:Fault 消息 Segmentation 什么 继续 编辑 新编辑 程序 试运行      更新时间:2023-10-16

真的不知道该怎么做,它只是检查矩阵中的单词是否仅从左到右匹配。您在命令行中找出单词和起始位置。因此,命令"./a.out tcnj 1 1 <0505matrix"将返回true,因为字母tcnj从矩阵中的位置1 1开始 非常感谢,感谢所有的帮助!所以这是矩阵,只有字母在 5 行中,每行 5 个(这就是 5 行),类似于单词搜索

5

5你是一个QoF T C N J克·e a v o t噗嗤噗��

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(int argc, char *argv[]){
  for(int i = 0; i < argc; i++){
    cout << argv[i] << " ";
  }
  std::string sWord = argv[1];
  int wordLength = sWord.length();
  int startRow = atoi(argv[2]);
  int startCol = atoi(argv[3]);
  int x, y;
  cin >> x >> y;
  cout << x << y << endl;
  vector < vector < char > > matrix;
  matrix.resize(x);
  for(int i = 0; i < matrix.size(); i++){
    matrix.resize(y);
    for(int k = 0; k < matrix.size(); k++){
      cin >> matrix[i][k];
    }
  }
  for(int i = 0; i < wordLength; i++){
    if(matrix[startRow][startCol + i] != sWord[i]){
      return false;
    }
    else{
      return true;
    }
  }
}

我认为您的代码中的问题是,在下一行中,

matrix.resize(y);

由于它是一个二维向量,你应该这样做。

  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];
    }
  }