还在苦苦敲代码开发APP?你out啦! 试试积木搭建APP吧~

c/c++如何判断指针无效?如NULL,0xcccccccc,0xfeeefeee,野指针等

来源:清泛原创     2016-08-19 17:38:07    人气:     我有话说( 0 人参与)

c c++如何判断指针无效?不仅仅是NULL的判断,有时由于指针释放没有赋NULL,指针会变成野指针或诸如0xcccccccc,0xfeeefeee形式的无效指针,...

c/c++如何判断指针无效?不仅仅是NULL的判断,有时由于指针释放没有赋NULL,指针会变成野指针或诸如0xcccccccc,0xfeeefeee形式的无效指针,那么此时如何判断指针是否有效呢?

AfxIsValidAddress
// 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));
IsBadWritePtr, IsBadReadPtr
BOOL AFXAPI AfxIsValidAddress(const void* lp, UINT nBytes,
BOOL bReadWrite /* = TRUE */)
{
// simple version using Win-32 APIs for pointer validation.
return (lp != NULL && !IsBadReadPtr(lp, nBytes) &&
(!bReadWrite || !IsBadWritePtr((LPVOID)lp, nBytes)));
}

指针无效 0xcccccccc 0xfeeefeee 野指针

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)
分享到: