struct mem_control_block { int is_available; // これはマークです int size; // これは実際のスペースのサイズです };
void free(void * ptr) { struct mem_control_block * free ; free = ptr- sizeof(struct mem_control_block); 無料 - > is_available = 1 ; 戻る; }
Freeは、スペースを使用可能な空きスペースに変えるだけであり、初期化は行われないため、mallocを使用してスペースを割り当てるたびに、初期化されます。通常、memset()、たとえばmemset(buf、0、100);
mallocの代わりにcallocを使用してメモリを割り当てることもできます。calloc関数は、適用されたメモリを自動的に初期化します。