_CrtIsMemoryBlock
Ověří, zda je blok paměti zadaná v místní haldy a jeho identifikátor typu bloku haldy platný ladění (pouze ladicí verze).
int _CrtIsMemoryBlock(
const void *userData,
unsigned int size,
long *requestNumber,
char **filename,
int *linenumber
);
Parametry
[in] userData
Ukazatel na začátek bloku paměti k ověření.[in] size
Velikost určeného bloku (v bajtech).[out] requestNumber
Ukazatel na počet přidělení bloku nebo NULL.[out] filename
Ukazatel myši na název zdrojového souboru, která si vyžádala bloku nebo NULL.[out] linenumber
Ukazatel na číslo řádku ve zdrojovém souboru nebo NULL.
Vrácená hodnota
_CrtIsMemoryBlockVrátí TRUE Pokud paměti zadaný blok je umístěn v rámci haldy místní a identifikátor typu platné ladění haldy bloku; v opačném případě vrátí funkce FALSE.
Poznámky
_CrtIsMemoryBlock Funkce ověří nachází blok paměti zadaná v rámci místní haldy aplikace a obsahuje identifikátor typu platné bloku.Tuto funkci lze také získat číslo objektu přidělení zakázky a číslo/řádek název zdrojového souboru, kde původně požadoval přidělení bloku paměti.Předání hodnoty NULL requestNumber, filename, nebo linenumber parametrů způsobí, že _CrtIsMemoryBlock tyto parametry nastavit hodnoty v záhlaví bloku paměti ladění, pokud nalezne blok v místní haldy.Při _DEBUG není definován, je volání do _CrtIsMemoryBlock jsou odstraněny během předběžného zpracování.
Pokud _CrtIsMemoryBlock selže, vrátí FALSE a výstupní parametry jsou inicializovány na výchozí hodnoty: requestNumber a lineNumber jsou nastaveny na hodnotu 0 a filename je nastavena na NULL.
Vzhledem k tomu, že tato funkce vrací TRUE nebo FALSE, může být předán jeden z _ASSERT makra k vytvoření jednoduché ladění chyba zpracování mechanismus.V následujícím příkladu způsobí selhání výrazu Pokud zadaná adresa není umístěn v rámci haldy místní:
_ASSERTE( _CrtIsMemoryBlock( userData, size, &requestNumber,
&filename, &linenumber ) );
Další informace o _CrtIsMemoryBlock lze použít s jinými ladění funkce a makra, viz Makra pro vytváření sestav.Informace o způsobu přidělování, inicializace a správy paměťových bloků v ladicí verzi základní haldy viz Podrobnosti haldy ladění CRT.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_CrtIsMemoryBlock |
<crtdbg.h> |
Další informace o kompatibilitě naleznete v úvodu tématu Kompatibilita.
Knihovny
Verze ladění pouze běhových knihoven C.
Příklad
Viz příklad _CrtIsValidHeapPointer téma.
Ekvivalent v rozhraní .NET Framework
Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.