Используйте posix_memalign
/ free
.
int posix_memalign(void **memptr, size_t alignment, size_t size);
void* ptr;
int rc = posix_memalign(&ptr, alignment, size);
...
free(ptr)
posix_memalign
- это стандартная замена memalign
, которая, как вы упоминаете, устарела.