インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

アライメントの合ったメモリーブロックの割り当てと解放

_mm_malloc および _mm_free 組込み関数を使用して、アライメントの合ったメモリーブロックの割り当てと解放を実行できます。これらの組込み関数は、libirc.a 内にある malloc および free 関数に基づいています。malloc.h をインクルードする必要があります。これらの組込み関数の構文は、次のとおりです。

void* _mm_malloc (size_t size, size_t align )

void _mm_free (void *p)

_mm_malloc ルーチンには、追加の引数を 1 つ指定する必要があります。この引数は、アライメントの制約条件する 2 の何乗かを示す値です。_mm_malloc で返すポインターは、指定した境界にアライメントが合っているのを保証します。

_mm_malloc を使用して割り当てられたメモリーは、_mm_free を使用して解放しなければなりません。_mm_malloc で割り当てられたメモリー上で free を呼び出したり、malloc で割り当てられたメモリー上で _mm_free を呼び出したりすると、予測できない動作が発生します。