Variablenname+0x34 ???
-
Moin,
ich weiß nicht ob ich es hier posten soll oder im C++ Forum, da aber WinAPI Datentypen und Funktionen genutzt werden, setze ich es erstmal hier hin ...
@Mods
Bitte verschieben, wenn nötig
Ich habe hier im Forum diesen Code_Schnipsel gefunden:
http://www.c-plusplus.net/forum/viewtopic-var-p-is-751378.html#751378Jetzt verstehe ich folgendes überhaupt nicht:
// geht noch rein, in die Rübe ... PUCHAR buf = new UCHAR[200]; // Ähh ..., oO (buf+0x34)[j];Also was bitte bedeutet (buf+0x34)[j] ???
Wieso kann ich dem Zeigervariablennamen etwas hinzufügen (verändern) und dann dennoch auf das Array zugreifen ... ?(buf+0x34) = buffy ???

Tut mir leid, ich bin Anfänger und habe in meiner Literatur nichts darüber gefunden.
Gruß
Greenhorn
-
Das kann man auch anders als buf[j+0x34] schreiben, genauso wie man buf[i] auch als *(buf+i) schreiben kann.
-
Vielen Dank Nanyuki.
Ich werde damit mal ein wenig herumspielen ...

Gruß
-
kann aber böse enden (für dein programm) wenn du aus versehen über die arraygrenzen hinausgehst.
(nur zur info
)
-
'buf' ist ein Zeiger auf das 1. Element im Array. Wenn Du 0x34 (hexadezimal, dezimal: 52) hinzuaddierst, bist Du beim 52. Element (genau genommen bei der Adresse des 52. Elements). Jetzt wird nochmal j Elemente weiter oder zurück gesprungen (wenn j negativ ist) und dann dereferenziert.
-
Vielen Dank, euch allen !

Habe es jetzt begriffen
, und sogar etwas dazu in einem meiner Bücher gefunden.Gruß
Greenhorn