2015-12-18 4 views
-7

Я знаю, что 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); 
} 
+2

https://en.wikipedia.org/wiki/Off-by-one_error – user657267

+8

'9X9 2d array' ...' для (INT I = 0; я <10; я ++) 'loops * 10 * раз. – dxiv

+2

Запомните этот шаблон: 'T a [SIZE]; для (i = 0; i ", false) });