Вы можете «писать» в него, просто обращаясь к ним и назначая их, как любой другой компонент структуры. Массив структур заголовков объявлен явно в структуре запроса, поэтому они уже будут «присутствовать» в новой структуре запроса (их будет выделено MAX_HEADERS
независимо от того, используете ли вы их все или нет). Вы получаете доступ к ним по индексу:
http_request_t request;
request.headers[0].name = ...
Если у вас уже есть структура заголовка из другого места, которую вы хотите «скопировать» в запрос, есть несколько способов сделать это, и что является наиболее идиоматическим c зависит от контекста.
Похоже, что это настроено так, что num_headers
указывает, сколько структур заголовков в этом массиве содержат действительные данные (даже если их может быть больше, выделенных и неиспользованных). Если вы добавляете новый из другого объекта заголовка, вы можете назначить и затем увеличить счетчик, например:
request.headers[request.num_headers] = some_header_obj;
request.num_headers++;
Et c.