値が 0x5 の int へのポインターがあるとします。その値に 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
この質問を見た後、私はこれを尋ねます:uintptr_tデータ型とは何ですか
通常の整数を使用せず、ポインターであるふりをするように通知されました。