Структуры с динамическими массивами в Си

Какая есть структура данных, которая позволяет хранить множество элементов разного размера и которую можно реализовать в C? Как мне такое сделать? Вроде как есть связный список, но поискав в интернете, я нашёл только реализации, в которых в элементах хранится только обычный int, а не что-то посложнее

typedef struct
{
    uint32_t product_id;
    uint32_t user_id;
    uint8_t  rating;
    char*    advantages;
    char*    disadvantages;
    char*    feedback;
} Comment;

Ответы (1 шт):

Автор решения: Harry

Есть две разновидности, так сказать, два подхода...

struct Test
{
    char *d;
    char s[1];
};

После этого вы можете динамически выделять память типа

struct Test ts;
ts.d = malloc(123);

(не забудьте потом ее удалить). А для s можете выделять иначе:

struct Test * td = malloc(123);

После этого фактически td->s получается большим массивом, в который вы можете безопасно писать достаточно длинные строки.

strcpy(ts.d, "Hello");
strcpy(td->s,"Dolly");
→ Ссылка