Запутался с указателями с++
Я преобразовал некую функцию так что она принимала указатель на переменную типа a_t, а теперь принимает указатель на массив указателей типа a_t
Было:
a_t * cell
Стало:
a_t * cells
В функции вызывалось:
cell->payload
Мне же нужно вызвать то же самое от первого элемента массива, я поменял эту строку на:
((*cells)[0])->payload
но оно выделяет ошибку и я не понимаю в чем причина
ошибка:
expression must have pointer-to-object typeC/C++(142)
Работаю в vs code
Ответы (1 шт):
Я преобразовал некую функцию так что она принимала указатель на переменную типа a_t
a_t* cell
ок, корректно
а теперь принимает указатель на массив указателей типа a_t
a_t * cells
а вот это очень странно, должно быть так:
a_t** cells
и тогда
cells[0] - это указатель на a_t и можно делать
cells[0]->payload
если payload - это a_t::payload