AfxIsMemoryBlock
BOOL AfxIsMemoryBlock( const void* p, UINT nBytes, LONG* plRequestNumber = NULL );
返回值:
如果内存块是现在分配的,并且其长度也是正确的,则返回非零值。否则为0。
参数:
p
指向将被测试的内存块。
nBytes
包含了以字节为单位的内存块长度。
plRequestNumber
指向一个长整数,它将被设为内存块的分配系列号码。由plRequestNumber指向的这个变量只有当AfxIsMemoryBlock返回非零值时才会被填充。
说明:
检测一个内存地址,确保它代表了一个由new的诊断版本分配的活动的内存块。它同时也检验指定的大小是否与最初分配的大小相符。如果这个函数返回非零值,分配的系列号码将在plRequestNumber中返回。这个号码代表了这个内存块相对于其它所有内存分配的顺序。
示例:
// AfxIsMemoryBlock的例子
CAge* pcage = new CAge( 21 ); // CAge is derived from CObject.
ASSERT( AfxIsMemoryBlock( pcage, sizeof( CAge ) ) )
请参阅:
AfxIsValidAddress