私はこのmalloc関数を研究していて、いくつかのヘルプを使用できます。
static void *malloc(int size)
{
void *p;
if (size < 0)
error("Malloc error");
if (!malloc_ptr)
malloc_ptr = free_mem_ptr;
malloc_ptr = (malloc_ptr + 3) & ~3; /* Align */
p = (void *)malloc_ptr;
malloc_ptr += size;
if (free_mem_end_ptr && malloc_ptr >= free_mem_end_ptr)
error("Out of memory");
malloc_count++;
return p;
}
十分なメモリがある場合、malloc funcは任意のタイプにメモリスペースを割り当てることを知っていますが、私が理解していない行は次のとおりです。
p = (void *)malloc_ptr;
malloc_ptr += size;
そのようなデータ型をどのように指すことができますか?そのvoidポインタまたはその場所を理解できません。
注:malloc_ptrはunsignedlongです