Initialisierung von Pointern
-
Guten Abend,
ich habe ein gewisses Verständniss Problem was Pointer und malloc angeht.int *la;
Zeigt die Variable dann auf eine beliebeige Speicherstelle inherhalb des Prozess-Speichers, oder zeigt la auf einen freien Platz im data(???) Segment?
Denn wenn ich so eine Pointer Variable initialisiere, und ohne einen malloc Aufruf etwas in diese Speicherstelle schreibe, funktioniert alles wunderbar.
Wäre toll, wenn mich jemand erleuchten könnte
(Ich weiß, hier werden viele solcher Fragen gepostet aber hierzu habe ich nicht wirklich etwas finden können.)Danke vielmals!
mfg grottenolm
-
Bei
int* la
zeigt der Pointer irgendwo im Hauptspeicher hin. Wenn du jetzt mit
*la = 23;
versuchst, den zu dereferenzieren, kommt wahrscheinlich eine Access Violation.
-
Ahhh, super. Jetzt geht mir ein Licht auf.
Eine Frage habe ich aber noch: Zeigt die Pointer-Variable bei Erstellung auf den Adressraum des eigenen Prozesses oder ist das unbestimmt?
Linux lässt bekanntermaßen nur in Ausnahmefällen zu, dass ein Prozess in den Speicher eines anderen eingreift. Aber wie ist das mit Windows?Danke dir!
mfg grottenolm
-
Original erstellt von <grottenolm>:
Eine Frage habe ich aber noch: Zeigt die Pointer-Variable bei Erstellung auf den Adressraum des eigenen Prozesses oder ist das unbestimmt?irgendwo hin, also meistens nicht in deinen Speicher (kann aber durchaus auch mal passieren)
Linux lässt bekanntermaßen nur in Ausnahmefällen zu, dass ein Prozess in den Speicher eines anderen eingreift. Aber wie ist das mit Windows?
schock schwere not, aber das koennen alle modernen betriebssysteme
-
Ok, danke euch beiden.
Ihr habt mir sehr geholfen!mfg grottenolm