Mein PC verrechnet sich?
-
#include<stdio.h> #define SV sizeof(void*) int main() { void **a = 0x8049c5c; printf("%p - %p = %p\n", a, 2*SV, a-2*SV); return 0; }
ergibt
0x8049c5c - 0x10 = 0x8049bdc
-
int array[10]; array+2 = &array[2] 0x403440+2*sizeof(int) = 0x403440+2*4
-
void **a = 0x8049c5c; printf("%p - %p = %p\n", a, 2*SV, a-2);
Pointerarithmetik funktioniert immer in ganzen Einheiten (von void* in diesem Beispiel), nicht mit Bytes.
-
Danke.
-
Lol verrechnet der ganze PC basiert auf mathematik wie könnte er sich da verrechnen?
-
Heheh erinnere dich mal an den Co-Prozessorbug von Intel vor ein paar Jahren.