版本 1:
int* work(int** pointer, int offset)
{
return *pointer + (offset/sizeof(int));
}
int main()
{
int** pointer = (int**) 0x4df73c;
int offset = 0xf4;
int* healthLowestPointer = work(pointer, offset);
while(true) {
*healthLowestPointer = 1000;
Sleep(250);
}
}
版本 2:
int* work(int* pointer, int offset)
{
return (int*) (*pointer + (offset/sizeof(int)));
}
int main()
{
int* pointer = (int*) 0x4df73c;
int offset = 0xf4;
int* healthLowestPointer = work(pointer, offset);
while(true) {
*healthLowestPointer = 1000;
Sleep(250);
}
}
版本 1 工作正常,但版本 2 似乎没有。我不明白为什么版本 2 坏了。取消引用双级指针与取消引用单级指针不是一回事吗,即它在指针包含的内存地址处获取值?
我将如何编写一个将 n 级指针作为输入的函数,并通过取消对 n 级指针 n-1 次的引用来返回一个 1 级指针?