Sdílet prostřednictvím


_aligned_offset_malloc_dbg

Přidělí paměť na zadanou hranici zarovnání (pouze ladicí verze).

Syntaxe

void * _aligned_offset_malloc_dbg(
   size_t size,
   size_t alignment,
   size_t offset,
   const char *filename,
   int linenumber
);

Parametry

size
Velikost požadovaného přidělení paměti.

alignment
Hodnota zarovnání, která musí být celočíselná mocnina 2.

offset
Posun do přidělení paměti k vynucení zarovnání.

filename
Ukazatel na název zdrojového souboru, který požadoval operaci přidělení nebo NULL.

linenumber
Číslo řádku ve zdrojovém souboru, kde byla požadována operace přidělení nebo NULL.

Vrácená hodnota

Ukazatel na blok paměti, který byl přidělen nebo NULL pokud operace selhala.

Poznámky

_aligned_offset_malloc_dbg je ladicí verze _aligned_offset_malloc funkce. Pokud _DEBUG není definováno, každé volání _aligned_offset_malloc_dbg se sníží na volání _aligned_offset_malloc. Jak _aligned_offset_malloc a _aligned_offset_malloc_dbg přidělit blok paměti v základní haldě, ale _aligned_offset_malloc_dbg nabízí několik funkcí ladění: vyrovnávací paměti na obou stranách bloku uživatele testovat úniky a filename/linenumber informace pro určení původu žádostí o přidělení. Sledování konkrétních typů přidělení pomocí parametru typu bloku není podporovanou funkcí ladění pro sladěné přidělení. Zarovnané přidělení se zobrazí jako _NORMAL_BLOCK typ bloku.

_aligned_offset_malloc_dbg přidělí blok paměti o něco více místa, než je požadováno size. Další místo používá správce haldy ladění k propojení bloků paměti ladění a k poskytnutí aplikace informace hlavičky ladění a přepsání vyrovnávací paměti. Při přidělení bloku se část bloku uživatele vyplní hodnotou 0xCD a každá vyrovnávací paměť přepsání se vyplní 0xFD.

_aligned_offset_malloc_dbg je užitečné v situacích, kdy je potřeba zarovnání u vnořeného prvku; Pokud bylo například zarovnání potřeba pro vnořenou třídu.

_aligned_offset_malloc_dbg je založena na malloc; další informace naleznete v tématu malloc.

Tato funkce nastaví errno ENOMEM , jestli přidělení paměti selhalo nebo pokud byla požadovaná velikost větší než _HEAP_MAXREQ. Další informace o errno, vizerrno , _doserrno, _sys_errlist, a _sys_nerr. _aligned_offset_malloc Ověří také jeho parametry. Pokud alignment není mocnina 2 nebo pokud offset je nenulová a větší nebo rovna size, tato funkce vyvolá neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, tato funkce vrátí NULL a nastaví errno hodnotu EINVAL.

Informace o přidělování, inicializaci a správě bloků paměti ve verzi ladění základní haldy naleznete v podrobnostech haldy ladění CRT.

Informace o typech bloků přidělení a jejich použití najdete v tématu Typy bloků v haldě ladění.

Požadavky

Rutina Požadovaný hlavičkový soubor
_aligned_offset_malloc_dbg <crtdbg.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Knihovny

Ladění pouze verzí knihoven runtime jazyka C.

Viz také

Rutiny ladění