Здравствуйте. В C++ я начинающий, поэтому испытываю сложности с его строгой типизацией. Пробую пользоваться очередями. Передаю из очереди в массив значения, но почему-то появляется неотловленное исключение, которое обычно у меня при выходе за пределы массива. Приведу укороченный код с методом (там отмечена проблемная область):
class KittyClass {
public:
int coord[9][2];
int x, a, b, w, num;
std::queue<int> queue;
KittyClass() {
x = 0;
num = 1;
}
bool goKittiesBFS(std::string arr[6][6]) {
int y = 1, num = 1, g = 0;
string cats[2];
string myArrStr;
string myCompStr;
string s;
for (int i = 0; i < 9; i++)
{
for (int g = 0; g < 6; g++)
{
for (int b = 0; b < 6; b++)
{
//strcpy_s(arrStr, arr[w][b].c_str());
myArrStr = arr[g][b].c_str();
myCompStr = "k" + std::to_string(num);
//strcpy_s(compStrPart, s.c_str());
//strcat_s(compStr,compStrPart);
std::cout << myArrStr << " : " << myCompStr << std::endl;
if (myArrStr == myCompStr)
{
queue.push(g);
queue.push(b);
}
}
}
(b >= 6) ? b = 0 : b;
(g >= 6) ? g = 0 : g;
num++;
}
// ----------------
// Тут происходит выход за пределы:
for (int i = 0; i < 9; i++)
{
// cats[9][2] // queue имеет 18 чисел
cats[i][0] = queue.front();
queue.pop();
cats[i][1] = queue.front();
queue.pop();
}
return true;
}
}