ヒープアロケータを実装するための無料リストを作成しようとしています。これまでのところ、構造体を定義した方法は次のとおりです。
typedef struct headerT headerT;
struct headerT{
size_t payloadSize;
struct headerT* next; // unused field to make struct 8 bytes, simplifies alignment
};
headerT* freeList;
ヒープを初期化する方法は次のとおりです。
int myinit()
{
freeList = InitHeapSegment(0); // InitHeapSegment resets heap segment to empty, no pages
//allocated
freeList->payloadSize = 0;
freeList->next=NULL;
return 0;
}
関数がペイロードサイズをゼロに変更しようとすると、すぐにセグメンテーション違反が発生します。ここで何が欠けていますか?