Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 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.