_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 FALSE
wartość .
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 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
.