Я просмотрел похожие посты для этого типа вопроса, но пока не смог найти метод, который я мог бы использовать в 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()
, которая печатает массив на консоль, чтобы я мог видеть значения во время отладки, но я хотел знать, есть ли способ увидеть эти значения как я исправляю свой код. Любая обратная связь с благодарностью!