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