我正在尝试为我正在编程的游戏打印出一块电路板。这是我的代码:
#include <iostream>
#include <vector>
using namespace std;
vector<char> column1 = { '-', '-', '-', '-', '-', '-'};
vector<char> column2 = column1;
vector<char> column3 = column1;
vector<char> column4 = column1;
vector<char> column5 = column1;
vector<char> column6 = column1;
vector<char> column7 = column1;
vector<vector<char>> all_columns = {
column1,
column2,
column3,
column4,
column5,
column6,
column7
};
void print_board() {
cout << "| ";
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 6; ++i)
{
cout << all_columns[i][j]
<< " ";
}
cout << "|\n";
}
return;
}
int main() {
print_board();
return 0;
}
我得到了一个“SIGSEGV(地址边界错误)”,我似乎无法看到腐烂大脑的问题,我在这里缺少什么?
答案 0 :(得分:1)
您的问题是由内循环中的拼写错误引起的。为避免这种情况,请使用范围循环:
for (const auto& row: board)
{
for (auto cell: row)
{
//do something here
}
}
通常有标准算法,先试着找。