Поделиться через


AfxIsValidAddress

Tests any memory address to ensure that it is contained entirely within the program's memory space.

BOOL AfxIsValidAddress(
   const void* lp,
   UINT nBytes,
   BOOL bReadWrite = TRUE 
); 

Параметры

  • lp
    Points to the memory address to be tested.

  • nBytes
    Contains the number of bytes of memory to be tested.

  • bReadWrite
    Specifies whether the memory is both for reading and writing (TRUE) or just reading (FALSE).

Возвращаемое значение

In debug builds, nonzero if the specified memory block is contained entirely within the program's memory space; otherwise 0.

In non-debug builds, nonzero if lp is not NULL; otherwise 0.

Заметки

The address is not restricted to blocks allocated by new.

Пример

// Allocate a 5 character array, which should have a valid memory address.
char* arr = new char[5];

// Create a null pointer, which should be an invalid memory address.
char* null = (char*)0x0;

ASSERT(AfxIsValidAddress(arr, 5));
ASSERT(!AfxIsValidAddress(null, 5));

Требования

Header: afx.h

См. также

Основные понятия

MFC Macros and Globals

AfxIsMemoryBlock

AfxIsValidString