add allocate.h allocate.c