假设我有一个指向 int 的指针,其值为 0x5。我想为该值添加 0x3 的偏移量。
我应该这样做(方法A):
int* pointer = 0x5;
int offset = 0x3;
pointer = pointer + (offset/sizeof(int)); // pointer is now equal to 0x8
或像这样(方法B):
uintptr_t pointer = 0x5;
pointer = pointer + 0x3;
int* ptr = (int*) pointer; // pointer is now equal to 0x8
看到这个问题后我问这个:What is uintptr_t data type
我被告知不要使用常规整数并假装它们是指针。