Everybody agrees that posix_memalign() is declared in <stdlib.h>. In order to declare it, glibc needs _GNU_SOURCE defined, or _XOPEN_SOURCE defined to a value not less than 600.
Everybody agrees that memalign() is declared in <malloc.h>.
According to SUSv2, valloc() is declared in <stdlib.h>. Libc4,5 and glibc declare it in <malloc.h> and perhaps also in <stdlib.h> (namely, if _GNU_SOURCE is defined, or _BSD_SOURCE is defined, or, for glibc, if _XOPEN_SOURCE_EXTENDED is defined, or, equivalently, _XOPEN_SOURCE is defined to a value not less than 500).
malloc(3), free(3), getpagesize(2), brk(2)