Массив массивов строковой правильной декларации

Мне нужен массив массивов строки в моей программе. Я объявляю это так:

string edges[N][N] = {
{"0", "A", "0", "B", "E", "0", "0", "P1", "0"},
{"A", "0", "D", "I", "0", "0", "0", "0", "0"},
{"0", "D", "0", "0", "0", "H", "F", "0", "0"},
{"B", "I", "0", "0", "0", "H", "0", "0", "0"},
{"E", "0", "0", "0", "0", "0", "0", "P2", "0"},
{"0", "0", "H", "H", "0", "0", "0", "0", "P4"},
{"0", "0", "F", "0", "0", "0", "0", "0", "P3"},
{"0", "0", "0", "0", "0", "0", "0", "0", "0"},
{"0", "0", "0", "0", "0", "0", "0", "0", "0"},
};

Это нормально, когда я пытаюсь получить доступ к строкам с 1-буквенным значением (A или B и т.д.), Но если я попытаюсь получить доступ к строке с 2-буквенным значением, например, edges[0, 7] (значение "P1") программа выведет 0. Что не так? Он отлично работает, если элемент 1-буквенный, такой как A, B, C и т.д., Но терпит неудачу с P1 или P2. Полный список программ и рабочая программа здесь http://ideone.com/ZMiVPE

2 ответа

Он здесь показывает значение 0 в позиции [0,8], так что это правильно. ну, это правильно. Массив собирается организовать:

string edges[N][N] = {
{[0,0], [0,1], [0,2], [0,3], [0,4], [0,5], [0,6], [0,7], [0,8]},
 ....
[8,0], [8,1], [8,2], [8,3], [8,4], [8,5], [8,6], [8,7], [8,8]}}
};


Потому что вы хотите 7, а не 8. C говорит нам индекс 0.

licensed under cc by-sa 3.0 with attribution.