_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.