C C++ Pointerarithmetik

Hallo,
ich spiele gerade etwas mit Pointern rum und werde aus dem Ergebnis nicht ganz schlau.
Mit folgendem sinnfreien Codefetzen möchte ich erreichen, dass an Speicheradressen in bestimmten Abstand ihre Speicheradressen gespeichert werden.
Doch etwas schlägt fehl. Die linke Seite der Zuweisung wird immer nur um 2 Inkrementiert, die Rechte um 8. Wie kann ich mir das denn erklären?
Es wird doch jedesmal die selbe Rechnung vorgenommen.
Wiso sollte das Casten sich in dieser Weise auf die Berechnung auswirken?

Code:
const size_t blockSize = 8;
startPointer = memory.returnStartAddress(MEMSIZE);
char* charPointer = (char*)startPointer;
       
for(int i=0; i<MEMSIZE; i+=blockSize )
{ 
        *((void**)(charPointer+i)) = (void*)(charPointer+i);
}
 
Zurück
Oben