C++ Frage mit Pointer?

...komplette Frage anzeigen

2 Antworten

Im Pointer selbst steht nur die Speicheradresse, auf die er zeigt. Wenn Du also dann in den Pointer schreibst, dann veränderst Du am "Ziel" den Speicherinhalt. (Lesen natürlich entsprechend)

zantes 22.01.2016, 00:35

wenn ich jetzt im speicher auf int i = 3 verweise mit dem Pointer pZahl und dann auf eine funktion zeige

pZahl->Funktion(); 

was passiert dann mit der funktion ?? versteh ich grade nicht richtig

0
GoodbyeKitty1 22.01.2016, 00:46
@zantes

Was auch immer Du tun willst - ich glaube Du hast die Idee hinter Pointern nicht ganz verstanden ;)
WENN Du einen Pointer hast, der auf eine Speicherzelle zeigt, in der "3" steht, dann ist es erstmal vom definierten Typ des Pointers abhängig, wie das, was dort steht, interpretiert wird.
Wir nehmen der Einfachheit halber mal einen Pointer auf char, bei int wird's nämlich schon wieder kompliziert ( https://de.wikipedia.org/wiki/Byte-Reihenfolge#Beispiel:_Speicherung_einer_Integer-Zahl_von_32_Bit_in_4_Bytes )
Und als Speicherinhalt nehmen wir die Zahl 64 und nicht 3, sonst wirds nämlich auch kompliziert.
ALSO... Du zeigst also auf eine (angenomme) Adresse 1234 im Speicher und diese enthält (dez) 64.
WENN Dein Pointer auf einen char zeigt, dann steht da "@" drin, weil Deine Programmiersprache den Inhalt der Speicherzelle als Char interpretiert.
WENN Dein Pointer auf ein Byte zeigen soll, dann steht da 64.

Der Funktionsaufruf aus Deiner Frage wird, solltest Du nicht zufällig auf eine Funktion zeigen (C++!), zu einem interessanten "irgendwas" führen - mit allergrößter Wahrscheinlichkeit übrigens zu einem Absturz (unter Windows/Linux/etc. zu einer Schutzverletzung)
Hier gibt's mehr Informationen, um Englisch kommst Du übrigens nicht rum, 99.9% aller nützlichen Informationen setzen das voraus.
http://www.cplusplus.com/doc/tutorial/pointers/

1

Der '->' Operator ruft eine Methode bei dem Objekt auf, auf das er zeigt.

Was möchtest Du wissen?