Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
 Передать массив структур в функцию  [new]
jenya7
Member

Откуда:
Сообщений: 1159
Есть массив
typedef struct
{
    uint8_t type;
    uint8_t num;
    uint8_t data_type;
    int_or_ptr_t var_or_ptr;
}EXPR_T;

EXPR_T expression[128];

Хочу работать с массивом структур по ссылке
int Parse(EXPR_T *expr[])
{
    (*expr)[expr_idx].type = 1;
}

как мне его передать?
Parse(&expression);

так ругается
17 май 19, 15:14    [21887377]     Ответить | Цитировать Сообщить модератору
 Re: Передать массив структур в функцию.  [new]
Dima T
Member

Откуда:
Сообщений: 13915
int Parse(EXPR_T *expr)
{
    expr[expr_idx].type = 1;
}


Parse(expression);


Иди читай про работу с указателями
17 май 19, 15:32    [21887397]     Ответить | Цитировать Сообщить модератору
 Re: Передать массив структур в функцию.  [new]
Dima T
Member

Откуда:
Сообщений: 13915
По-хорошему надо еще размер массива передавать и внутри проверять чтобы за пределы не выскочить.
int Parse(EXPR_T *expr, size_t size) 
17 май 19, 15:36    [21887404]     Ответить | Цитировать Сообщить модератору
 Re: Передать массив структур в функцию  [new]
jenya7
Member

Откуда:
Сообщений: 1159
Dima T
По-хорошему надо еще размер массива передавать и внутри проверять чтобы за пределы не выскочить.
int Parse(EXPR_T *expr, size_t size) 

ой. что то я совсем плох стал :) спасибо.
17 май 19, 15:45    [21887418]     Ответить | Цитировать Сообщить модератору
Все форумы / Программирование Ответить