Распределение памяти для массива указателей структуры

Я пытаюсь построить распределитель памяти в C. Пользователь начинает с того, сколько памяти он хочет использовать, и наименьший размер блока памяти, который может быть сделан доступным.

Так, например, предположим, что пользователь запрашивает 1024B с наименьшим размером блока 8B. Это означает, что возможные размеры блоков будут 1024, 512, 256, 128, 64, 32, 16 и 8.

Чтобы отслеживать свободные блоки памяти, у меня есть массив указателей на структуры. Эти структуры называются Header, а массив называется FreeList. Я имею в виду, что FreeList [0] будет содержать указатель на пространство в памяти, где есть блок памяти размером 8. FreeList [1] будет содержать указатель на пространство в памяти, где есть блок памяти размером 16 . так далее.

typedef void * Addr;
struct Header
{
    Addr next;
    int order;
};

struct Header *FreeList[];

Я пытаюсь выделить память для этого свободного списка для использования со следующим кодом:

FreeList = malloc(Order*sizeof(struct Header));

Где Order - это количество блоков разных размеров, которые вы можете иметь.

Я получаю сообщение об ошибке компиляции "FreeList" имеет неполный тип.

Я не хочу, чтобы эти указатели указывали где-либо еще, я просто хочу выделить место для данных.

Ответы на вопрос(1)

Ваш ответ на вопрос