は、例えば:本当に整列をサポートするrealloc()のバージョンはありませんか?
#include <stdlib.h>
int posix_memalign(void **memptr, size_t alignment, size_t size);
void *aligned_alloc(size_t alignment, size_t size);
#include <malloc.h>
void *memalign(size_t alignment, size_t size);
(POSIX、それぞれのglibcとLinuxのlibcの発信)、由緒malloc()
のいくつかの整列バージョンが存在します。しかし、私はアライメントをサポートするrealloc()
のバージョンについて何も言及していないようです。本当に実装されたことはありませんか?アライメントされていないrealloc()
の機能と、アライメントされたmalloc()
の種類のメモリの整列したチャンクの検索を組み合わせるのはかなり簡単です。
関連:
Does realloc keep the memory alignment of posix_memalign?
はい。いろいろな理由でいいえはありません。 1つは、割り当てられた割り付けられた関数が、割り付けられたブロックのデータサイズに関する情報を保存せず、データのコピーが不可能であることです。それはアプリケーション開発者に任せられました。適切なメーリングリストのアーカイブを参照してください。 –
@PeterJ: 'malloc()'が保存するよりも_less_情報を保存することをアライメントしていますか?私は非常にそれを疑う...とにかく、もしあなたがこれ以上いくつかの肉体的なことができれば、その議論のいくつかへのリンクが望ましい、答えを投稿してください。 – einpoklum
以下。トピックは、フォーラムにとっては複雑すぎる。メーリングリストのアーカイブを参照してください。 –