Sdílet prostřednictvím


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

Viz také

Referenční dokumentace

Rutiny ladění