Zeiger
-
Hallo zusammen.
Ich würde gerne zwei Programme schreiben:
Das eine deklariert eine Variable und gibt die Adresse dieser Variablen aus.
Beim anderen soll man die Adresse der Variablen aus dem ersten Programm eingeben und es soll den Wert dieser ausgeben.Das erste Programm ist kein Problem.
Doch beim zweiten weiß ich nicht wie ich das machen soll.
Logischerweise mit einem Zeiger, aber wie kann ich dem Zeiger die Adresse der Variabeln auf die der Zeiger zeigen soll übergeben?Ich habe es mal so probiert:
#include <iostream.h> #include <iomanip.h> int main() { cout<<"Adresse: "; int adr; cin>>hex>>adr; int * pa = adr; cout<<"a= "<<*pa<<"\n"; }Doch das funktioniert nicht, es wird "a=0" ausgegeben.
Wisst ihr vielleicht wie das gehen soll?
Danke schonmal.
-
Das geht gar nicht - am Ende von Programm 1 wird die Variable zerstört und ist damit weg (und selbst wenn das Programm noch irgendwo aktiv ist, wird dir Windows nicht erlauben, von außen dort reinzugreifen).
-
Schade.
Ist das bei Linux auch so?
-
Das sollte auf jedem Betriebssystem so sein. Oder möchtest du, dass dir irgendein Programm in deinem Speicher herumpfuscht?
Wenn du Daten zwischen unterschiedlichen Programmen/Programminstanzen transportieren willst, muss du das über einen anderen Speicher machen. zB. die Festplatte.
-
Und wie kann ich eine Variable in der Festplatte abspeichern?
-
Artikel: http://www.c-plusplus.net/forum/viewtopic-var-t-is-152915.html
Unter Filestreams. Darum, dass der Inhalt von Klassen/Arrays etc. korrekt abgelegt/gelesen wird, musst du dich dann aber selber kümmern.
-
viande schrieb:
Wenn du Daten zwischen unterschiedlichen Programmen/Programminstanzen transportieren willst, muss du das über einen anderen Speicher machen. zB. die Festplatte.
Also Festplatte ist wohl sehr langsam. Ich würde IPC (z.B. Shared Memory) vorschlagen.