Допустим, мне нужно проанализировать строку в C и заполнить такую структуру, как:
line = "GET /hello HTTP/1.1\r\n";
typedef struct {
char* method;
char* path;
char* protocol;
} http_request_line;
parse_http();
Я хотел бы вызвать функцию, которая вернула бы мне http_request_line
.Я не уверен в нескольких вещах:
Где я должен инициализировать структуру для выделения памяти?Должен ли он быть в моем вызывающем методе (например, main()
) и дать ему указатель, чтобы функция заполнила его?Или он должен быть в parse_http()
и возвращать его копию?
request_http_line parse_http(char* line);
request_http_line* parse_http(char* line);
void parse_http(char* line, request_http_line *rhl);
Поскольку структура имеет поля с неопределенной длиной (например, метод может иметь переменную длину, например GET, HEAD ...)я должен создать конструктор и метод деструктора вместо этого?