Вопрос Поворот шахматной доски

Новичок
Статус
Оффлайн
Регистрация
14 Дек 2024
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Пытаюсь реализовать поворот шахматной доски 10 на 10:
C++:
Board::Board(bool t, QObject *parent) : QObject(parent), turn{t}{
   fullBoard = new Men*[N + 4];
   for (int i = 0; i < N + 4; ++i){
       fullBoard[i] = new Men[N + 4];
   }
   board = new Men*[N + 4];
   rotated = new Men*[N + 4];
   for (int i = 0; i < N + 4; ++i) {
       board[i] = &fullBoard[i][2];
       rotated[i] = &fullBoard[i][2];
   }
   ++(++board);
   initBoard();
}
 
Board::~Board()
{
    for (int i = 0; i < N + 4; ++i){
        delete []fullBoard[i];
        delete []rotated[i];
    }
    delete []fullBoard;
    delete []rotated;
}
 
void Board::rotateBoard() {
    // Проверка, что указатели не являются нулевыми
    if (!board || !rotated) return;
 
    // Поворот
    for (int i = 0; i < 10; ++i) {
        for (int j = 0; j < 10; ++j) {
            rotated[i][j] = board[9 - i][9 - j];
        }
    }
 
    // Копирование обратно
    for (int i = 0; i < 10; ++i) {
        for (int j = 0; j < 10; ++j) {
            board[i][j] = rotated[i][j];
        }
    }
}
При вызове rotateBoard() при отладке выдается:

Приложение остановлено, так как оно получило сигнал от операционной системы.

Сигнал:
SIGSEGV
Назначение:
Segmentation fault

Как исправить?
 
Сверху Снизу