Udostępnij za pośrednictwem


_CrtCheckMemory

Potwierdza integralność bloków pamięci przydzielonych w stercie debugowania (tylko wersja debugowania).

Składnia


int _CrtCheckMemory( void );

Wartość zwracana

Jeśli operacja powiedzie się, _CrtCheckMemory zwraca wartość TRUE; w przeciwnym razie funkcja zwraca FALSEwartość .

Uwagi

Funkcja _CrtCheckMemory weryfikuje pamięć przydzieloną przez menedżera stert debugowania, sprawdzając podstawową stertę bazową i sprawdzając każdy blok pamięci. Jeśli w bazowym stercie podstawowym napotkano błąd lub niespójność pamięci, informacje nagłówka debugowania lub bufory zastępowania generuje _CrtCheckMemory raport debugowania z informacjami opisującym warunek błędu. Gdy _DEBUG nie jest zdefiniowana, wywołania do _CrtCheckMemory są usuwane podczas przetwarzania wstępnego.

Zachowanie _CrtCheckMemory funkcji można kontrolować, ustawiając pola bitowe _crtDbgFlag flagi _CrtSetDbgFlag przy użyciu funkcji . Włączenie pola bitowego _CRTDBG_CHECK_ALWAYS_DF powoduje _CrtCheckMemory wywoływanie wywołania za każdym razem, gdy żądana jest operacja alokacji pamięci. Mimo że ta metoda spowalnia wykonywanie, warto szybko przechwytywać błędy. Wyłączenie pola bitowego _CRTDBG_ALLOC_MEM_DF powoduje _CrtCheckMemory , że sterta nie zostanie zweryfikowana i natychmiast zwróci wartość TRUE.

Ponieważ ta funkcja zwraca TRUE wartość lub FALSE, można ją przekazać do jednego z _ASSERT makr w celu utworzenia podstawowego mechanizmu obsługi błędów debugowania. Poniższy przykład powoduje niepowodzenie asercji, jeśli w stercie wykryto uszkodzenie:

_ASSERTE( _CrtCheckMemory( ) );

Aby uzyskać więcej informacji na temat _CrtCheckMemory sposobu użycia z innymi funkcjami debugowania, zobacz Funkcje raportowania stanu sterta. Aby zapoznać się z omówieniem zarządzania pamięcią i sterty debugowania, zobacz szczegóły sterty debugowania CRT.

Wymagania

Procedura Wymagany nagłówek
_CrtCheckMemory <Crtdbg.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Biblioteki

Debugowanie tylko wersji bibliotek czasu wykonywania języka C.

Przykład

Aby zapoznać się z przykładem korzystania z programu _CrtCheckMemory, zobacz crt_dbg1.

Zobacz też

Procedury debugowania
_crtDbgFlag
_CrtSetDbgFlag