我有一个指针,我“手动”设置它指向的地址:
pPlayerPool = reinterpret_cast<DWORD*>(someAddress+PLAYER_POOL_POINTER_OFFSET);
Run Code Online (Sandbox Code Playgroud)
当游戏还没有开始时,pPlayerPool指向0x0,这就是我的内存搜索工具中的内容。我试着检查一下
if(*pPlayerPool)
Run Code Online (Sandbox Code Playgroud)
或者
if(*pPlayerPool != 0)
Run Code Online (Sandbox Code Playgroud)
或者
if(*pPlayerPool != NULL)
Run Code Online (Sandbox Code Playgroud)
当它是 0x0 时,我的程序总是崩溃。
然后我还有另一个小问题:据我所知,它*给了我指针的值和&指针本身的地址。但是如果没有这些字符,这个值意味着什么呢?
那是因为您试图取消引用空指针。不要取消引用它,只需检查它的值即可。
if(pPlayerPool)
if(pPlayerPool != 0)
Run Code Online (Sandbox Code Playgroud)
当你这样做时
*pPlayerPool != 0
Run Code Online (Sandbox Code Playgroud)
您正在测试 所指向的值是否pPlayerPool为零。不是pPlayerPool血清。