_aligned_realloc_dbg
Změní velikost bloku paměti, který byl přidělen _aligned_malloc
nebo _aligned_offset_malloc
(pouze ladicí verze).
Syntaxe
void * _aligned_realloc_dbg(
void *memblock,
size_t size,
size_t alignment,
const char *filename,
int linenumber
);
Parametry
memblock
Aktuální ukazatel bloku paměti.
size
Velikost požadovaného přidělení paměti.
alignment
Hodnota zarovnání, která musí být celočíselná mocnina 2.
filename
Ukazatel na název zdrojového souboru, který požadoval realloc
operaci nebo NULL
.
linenumber
Číslo řádku ve zdrojovém souboru, kde realloc
byla operace požadována nebo NULL
.
Vrácená hodnota
_aligned_realloc_dbg
vrátí ukazatel void na relokovaný (a pravděpodobně přesunutý) paměťový blok. Vrácená hodnota je NULL
, pokud je velikost nula a argument vyrovnávací paměti není NULL
nebo pokud není dostatek dostupné paměti k rozšíření bloku na danou velikost. V prvním případě se původní blok uvolní. Za druhé se původní blok nezmění. Návratová hodnota odkazuje na prostor úložiště, který je vhodně zarovnaný pro úložiště libovolného typu objektu. Pokud chcete získat ukazatel na jiný typ než void, použijte přetypování typu na návratovou hodnotu.
Jedná se o chybu při opětovném přidělení paměti a změně zarovnání bloku.
Poznámky
_aligned_realloc_dbg
je ladicí verze _aligned_realloc
funkce. Pokud _DEBUG
není definováno, každé volání _aligned_realloc_dbg
se sníží na volání _aligned_realloc
. Blok _aligned_realloc
paměti v základní haldě a _aligned_realloc_dbg
relokujte ho, ale _aligned_realloc_dbg
zahrnuje několik funkcí ladění: vyrovnávací paměti na obou stranách bloku, které se mají otestovat na nevracení, 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_realloc_dbg
přeloží zadaný blok paměti o trochu více místa, než je požadováno newSize
. newSize
může být větší nebo menší než velikost původně přiděleného bloku paměti. 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. Relokace může přesunout původní blok paměti do jiného umístění v haldě a změnit velikost bloku paměti. Pokud se blok paměti přesune, obsah původního bloku se přepíše.
_aligned_realloc_dbg
nastaví errno
, ENOMEM
pokud přidělení paměti selže nebo pokud potřebné množství paměti (včetně výše uvedených režijních nákladů) překročí _HEAP_MAXREQ
. Informace o těchto a dalších kódech chyb naleznete v tématu , , , a_sys_nerr
. _sys_errlist
_doserrno
errno
_aligned_realloc_dbg
Ověří také jeho parametry. Pokud alignment
není mocnina 2, 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í. Informace o rozdílech mezi standardními funkcemi haldy a jejich ladicí verze naleznete v tématu Ladění verzí funkcí přidělení haldy.
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_aligned_realloc_dbg |
<crtdbg.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Knihovny
Ladění pouze verzí knihoven runtime jazyka C.