_aligned_offset_malloc
指定された配置の境界にメモリを割り当てます。
構文
void * _aligned_offset_malloc(
size_t size,
size_t alignment,
size_t offset
);
パラメーター
size
要求されたメモリ割り当てのサイズ。
alignment
アラインメント値。2 の整数乗である必要があります。
offset
アラインメントを強制するためのメモリ割り当てへのオフセット。
戻り値
割り当てられたメモリ ブロックへのポインター。操作が失敗した場合は NULL
。
解説
_aligned_offset_malloc
は、入れ子になった要素に対するアラインメントが必要な状況で便利です。たとえば、入れ子になったクラスに対するアラインメントが必要になった場合などです。
_aligned_offset_malloc
に基づいています malloc
。詳細については、次を参照してください malloc
。
_aligned_offset_malloc
はマーク __declspec(noalias)
され __declspec(restrict)
、つまり、関数がグローバル変数を変更しないことが保証され、返されるポインターがエイリアス化されていないことを意味します。 詳細については、次のトピックを参照してください。 noalias
および restrict
この関数は、メモリ割り当てが失敗するか、要求されたサイズが errno
より大きかった場合に、ENOMEM
を _HEAP_MAXREQ
に設定します。 errno
の詳細については、「errno
、_doserrno
、_sys_errlist
、_sys_nerr
」を参照してください。 また、_aligned_offset_malloc
はそのパラメーターを検証します。 2 の累乗でない場合alignment
、または 0 size
以外の値以上の場合offset
は、「パラメーターの検証」で説明されているように、この関数は無効なパラメーター ハンドラーを呼び出します。 実行の継続が許可された場合、この関数は NULL
を返し、errno
を EINVAL
に設定します。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください。
必要条件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_aligned_offset_malloc |
<malloc.h> |
例
詳細については、「_aligned_malloc
」を参照してください。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示