Я знаю, что Seg Sault вызван доступом к данным, которые не принадлежат вам, но я не понимаю, почему этот маленький бит кода для назначения значений и печати массива 9X9 2d возвращает Seg Неисправность. Пожалуйста помоги! код выглядит следующим образом:C++ Сегментация Неисправность {CLOSED}
using namespace std;
#include <iostream>;
#include <string>;
string output = "|";
string topBoard[9][9];
int main() {
for (int i = 0; i < 9; i++) {
for (int ii = 0; ii < 9; ii++) {
topBoard[i][ii] = "empty";
}
}
for (int ii = 0; ii < 9; ii++) {
cout << "-----------------------------------------------------------------";
output = "|";
for (int i = 0; i < 9; i++) {
output = output + topBoard[ii][i] + "|";
}
cout << output;
}
return(0);
};
Выход:
Сегментация Fault
Процесс завершился с кодом 139
Кто-нибудь есть какие-либо идеи, почему это могло произойти?
EDIT: Я использую cloud9, если кто-то хочет его проверить, отлично работает для работы с вашими вещами где угодно.
Далее Редактирование: здесь код со всеми правок:
using namespace std;
#include <iostream>
#include <string>
const int Height = 9;
const int Width = 9;
string output = "|";
string topBoard[Height][Width];
int main() {
for (int i = 0; i < Height; i++) {
for (int ii = 0; ii < Width; ii++) {
topBoard[i][ii] = "empty";
}
}
for (int ii = 0; ii < Height; ii++) {
cout << "-----------------------------------------------------------------";
output = "|";
for (int i = 0; i < Width; i++) {
output = output + topBoard[ii][i] + "|";
}
cout << output;
}
return(0);
}
https://en.wikipedia.org/wiki/Off-by-one_error – user657267
'9X9 2d array' ...' для (INT I = 0; я <10; я ++) 'loops * 10 * раз. – dxiv
Запомните этот шаблон: 'T a [SIZE]; для (i = 0; i