Просмотр элементов двумерного массива с помощью двойного указателя в целях отладки - PullRequest
1 голос
/ 27 марта 2020

Я просмотрел похожие посты для этого типа вопроса, но пока не смог найти метод, который я мог бы использовать в XCode для просмотра значений 2D-массива через указатель.

Сначала я создаю 2D-массив и заполняю его значениями из строки, например:

int** createArray(int rows, int columns, char* string) {
    int** array;

    // allocating memory for three rows
    array = malloc(rows * sizeof(int*));

    // allocating memory for three columns
    for(int i = 0 ; i < rows ; i++) {
        array[i] = malloc(columns * sizeof(char));
    }

    /* some code to populate array */

    return array;
}

Затем эти типы массивов передаются в качестве параметров другим функциям и новым массивам. созданы для манипулирования значениями, как таковые:

void misplacedTiles(int rows, int columns, int** initState, int** goalState) {
    int** tempState;
    int** bestState;

    // allocating memory for number of rows
    tempState = malloc(rows * sizeof(int*));
    bestState = malloc(rows * sizeof(int*));

    // allocating memory for number of columns
    for(int i = 0 ; i < rows ; i++) {
        tempState[i] = malloc(columns * sizeof(char));
        bestState[i] = malloc(columns * sizeof(char));
    }

    /* some code to manipulate arrays */

    printArray(rows, columns, tempState);
    printArray(rows, columns, bestState);    
}

Я хотел бы видеть значения, которые находятся в пределах индексов массива, как я отлаживаю, но я могу видеть только адрес памяти, где этот массив указывает на:

  • tempState = (int **) 0x100740500 0x0000000100740500
  • * tempState = (int *) 0x100732f50 0x0000000100732f50
  • ** tempState = (int) 0

Я создал отдельную функцию printArray(), которая печатает массив на консоль, чтобы я мог видеть значения во время отладки, но я хотел знать, есть ли способ увидеть эти значения как я исправляю свой код. Любая обратная связь с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...