Does realloc of memory allocated by C11 aligned_alloc keep the alignment?

不羁的心 提交于 2020-01-02 01:31:05

问题


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'll need to use aligned_alloc to perform any reallocations.



来源:https://stackoverflow.com/questions/20314602/does-realloc-of-memory-allocated-by-c11-aligned-alloc-keep-the-alignment

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!