Does realloc of memory allocated by C11 aligned_alloc keep the alignment?
问题 Consider the following (C11) code: void *ptr = aligned_alloc(4096, 4096); ... // do something with 'ptr' ptr = realloc(ptr, 6000); Since the memory that ptr points to has a 4096-byte alignment from aligned_alloc , will it (read: is it guaranteed to) keep that alignment after a (successful) call to realloc ? Or could the memory revert to the default alignment? 回答1: The alignment is not kept with the pointer. When you call realloc you can only rely on the alignment that realloc guarantees. You