|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.|
Verifies that a specified memory range is valid for reading and writing (debug version only).
Points to the beginning of the memory range to test for validity.
Size of the specified memory range (in bytes).
Read/write accessibility to determine for the memory range.
The _CrtIsValidPointer function verifies that the memory range beginning at address and extending for size bytes is valid for the specified accessibility operation or operations. When access is set to TRUE, the memory range is verified for both reading and writing. When address is FALSE, the memory range is only validated for reading. When _DEBUG is not defined, calls to _CrtIsValidPointer are removed during preprocessing.
Because this function returns TRUE or FALSE, it can be passed to one of the _ASSERT macros to create a simple debugging error handling mechanism. The following example causes an assertion failure if the memory range is not valid for both reading and writing operations:
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
For more information about how _CrtIsValidPointer can be used with other debug functions and macros, see Using Macros for Verification and Reporting. For information about how memory blocks are allocated, initialized, and managed in the debug version of the base heap, see Memory Management and the Debug Heap.
Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003
For more compatibility information, see Compatibility in the Introduction.
Debug versions of C run-time libraries only.
Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.