2016-05-25 2 views
-2

У меня возникли проблемы с разыменования динамического массива 2D в случае условного оператора на линии 5.Как я могу разыменовать этот 2D динамический массив?

typedef char* CharArrayPtr; 

void reserveSeat(CharArrayPtr *m, char row, char seatLetter){ 
    for(int j = 1; j < 5; j++){ 
     if(m[row - 1][j] == seatLetter) 
      m[row - 1][j] = 'X'; 
    } 
} 

Я пытался поставить * впереди, но я получаю сообщение об ошибке:

Для указания направления требуется указатель указателя ('int' недействительный)

Любая помощь приветствуется, заблаговременно.

+1

Что такое 'CharArrayPtr' –

+0

Также объясните, какие у вас проблемы. Включить точный текст любых соответствующих сообщений об ошибках компилятора или ошибок времени выполнения. –

+0

Добавлен определение для CharArrayPtr. – borninla

ответ

-2

Если вы хотите разыменовать 2D-массив оператором *, попробуйте следовать.

typedef char* CharArrayPtr; 

void reserveSeat(CharArrayPtr *m, char row, char seatLetter){ 
    for(int j = 1; j < 5; j++){ 
     //if(m[row - 1][j] == seatLetter) 
     if(*((char*)m + (row - 1)*5 + j) == seatLetter) 
      m[row - 1][j] = 'X'; 
    } 
} 
+1

Спасибо! больше нет ошибок. – borninla

Смежные вопросы