Przydział pamięci dla tablicy wskaźników struktury

Próbuję zbudować alokator pamięci w C. Użytkownik zaczyna od wypowiedzenia, ile pamięci chce użyć i najmniejszego rozmiaru bloku pamięci, który można udostępnić.

Na przykład, powiedzmy, że użytkownik żąda 1024B z najmniejszym rozmiarem bloku 8B. Oznacza to, że możliwe rozmiary bloków będą wynosić 1024, 512, 256, 128, 64, 32, 16 i 8.

Aby śledzić wolne bloki pamięci, mam tablicę wskaźników do struktur. Struktury te nazywane są nagłówkami, a tablica nazywa się FreeList. Chodzi mi o to, że FreeList [0] zawierałby wskaźnik do miejsca w pamięci, w którym znajduje się blok wielkości pamięci 8. FreeList [1] zawierałby wskaźnik do miejsca w pamięci, w którym znajduje się blok pamięci o rozmiarze 16 itd.

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

struct Header *FreeList[];

Próbuję przydzielić pamięć dla tej bezpłatnej listy do użycia z następującym kodem:

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

Gdzie kolejność to liczba różnych rozmiarów bloków, które możesz mieć.

Dostaję błąd kompilacji „FreeList” ma niekompletny typ.

Nie chcę, żeby te wskaźniki wskazywały gdziekolwiek, chcę tylko przydzielić miejsce na dane.