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.

questionAnswers(1)

yourAnswerToTheQuestion