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);
}
}
版本:
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-1次解引用n级指针返回1级指针?
这两个版本是UB。 – 2013-04-27 19:44:16
晚安SO,今天没有更多这些问题.../OFF – 2013-04-27 19:44:59
@Armin:我不确定你的意思。版本1是一致的并始终有效。 – user2327287 2013-04-27 19:45:11