_CrtMemDifference
Porovná dva paměťové státy a vrátí jejich rozdíly (pouze ladicí verze).
int _CrtMemDifference(
_CrtMemState *stateDiff,
const _CrtMemState *oldState,
const _CrtMemState *newState
);
Parametry
stateDiff
Ukazatel _CrtMemState struktury, která se používá k ukládání rozdíly mezi státy dvěma paměti (vráceny).oldState
Ukazatel do dřívějšího stavu paměti (_CrtMemState struktury).newState
Ukazatel na pozdější stavu paměti (_CrtMemState struktury).
Vrácená hodnota
Pokud jsou výrazně odlišné režimy paměť _CrtMemDifference vrátí hodnotu TRUE.Jinak vrátí funkce hodnotu FALSE.
Poznámky
_CrtMemDifference Porovná funkce oldState a newState a ukládá jejich rozdíly v stateDiff, které pak lze v aplikaci zjištění nevracení paměti a další problémy s pamětí.Při _DEBUG není definována, volání do _CrtMemDifference jsou odebrány při úpravě před zpracováním.
newStatea oldState musí být platný ukazatel _CrtMemState struktury, které jsou definovány v Crtdbg.h, který byl vyplněn podle _CrtMemCheckpoint před voláním _CrtMemDifference.stateDiffmusí být ukazatel dříve přidělený instanci _CrtMemState struktury.Pokud stateDiff, newState, nebo oldState je NULL, vyvolat neplatný parametr popisovače, jak je popsáno v Ověření parametrů.Pokud je povoleno spuštění pokračovat, Kód chyby, _doserrno, _sys_errlist a _sys_nerr je nastavena na EINVAL a vrátí hodnotu FALSE.
_CrtMemDifferenceporovnává _CrtMemState pole hodnoty bloků v oldState na ty v newState a uloží výsledek do stateDiff.Počet přidělených typy bloku nebo celkový počet přidělených bloků pro každý typ paměti dva státy se liší, jsou říká státy významně lišit.Rozdíl mezi největší dříve přidělené množství najednou dva státy a rozdíl mezi celkovou přidělení pro dva stavy jsou uloženy v stateDiff.
Ve výchozím nastavení vnitřní bloky C Runtime (_CRT_BLOCK) není součástí operace stav paměti._CrtSetDbgFlag Funkce lze zapnout _CRTDBG_CHECK_CRT_DF bit z _crtDbgFlag zahrnout tyto bloky detekce nevrácení a jiné operace stav paměti.Uvolnění bloků paměti (_FREE_BLOCK) nezpůsobí _CrtMemDifference vrátí hodnotu TRUE.
Další informace o stavu funkce haldy a _CrtMemState struktury, viz Funkce vykazování stavu haldy.Informace o jak bloků paměti jsou přiděleny inicializován a spravuje v ladicí verzi základní haldy, Správa paměti a ladění haldy.
Požadavky
Rutina |
Požadované záhlaví |
Volitelné záhlaví |
---|---|---|
_CrtMemDifference |
<crtdbg.h> |
<errno.h> |
Další informace o kompatibilitě v tématu Kompatibilita v úvodu.
Knihovny: ladění verze Funkce knihovny CRT pouze.
Příklad
Viz téma crt_dbg1.
Ekvivalent v rozhraní .NET Framework
Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady volání funkce platformy.