halimeh Geschrieben 6. April 2005 Geschrieben 6. April 2005 Moinsen ! Ich habe der Variablen 'a' einen Wert zugewiesen. Mit dem Befehl: cout<<&a;kann ich sehen wo der Wert der Variablen 'a' abgelegt wurde.Aber wie kann ich direkt auf den Speicherplatz zugreifen? Angenommen ich suche den Wert, der sich im Speicherplatz 0x0012FF7c befindet.Ich weiß aber nicht, daß der Wert den Namen 'Variable a' trägt.Wie kann ich dann den Inhalt vom Speicherplatz 0x0012FF7c auslesen ? Thx and greetz. Zitieren
Idexe Geschrieben 6. April 2005 Geschrieben 6. April 2005 Hallo, Müßte so gehen: char* c = (char*)0x0012FF7c; cout << *c; Wofür braucht man das denn ? Zitieren
Maulwurf_der_Schlaue Geschrieben 6. April 2005 Geschrieben 6. April 2005 Hi, ich glaub das braucht man wenn jmd. den namen der Variablen vergessen hat aber die Speicheradresse der Variablen noch kennt :bimei . Oder es is einfach nur ne Übung. Zitieren
halimeh Geschrieben 6. April 2005 Autor Geschrieben 6. April 2005 Moinsen ! Erstmal danke für die Antwort(en). Idexes Codeschnipsel hat auch soweit geklappt (abgesehen davon, daß ich 'int' statt 'char' benutzt habe). auf Idexes Frage, wofür ich das denn brauche: Das Ding hat noch keine praktische Anwendungsmöglichkeit für mich.Aber an anderer Stelle hat jemand gefragt, wie er seine gelöschten Daten (im OS Windows aus dem Papierkorb entfernt) wieder retten könne.Er hat halt die üblichen Tipps bekommen- irgendwelche Tools anzuwenden. Aber ich habe mich gefragt, wie man gelöschte Daten denn retten könne.Komplett gelöscht sein können die Daten ja nicht.Höchstens 'zum Überschreiben freigegeben' oder das Anfangsbit überschrieben oder irgendsowas. Ich suche jetzt halt mal ne Möglichkeit, Daten selbst zu retten.Nur so als kleine Spielerei. Ich weiß nicht, ob man mit Zeiger weiterkommt, aber war halt so ein Ansatzpunkt von mir.Mal sehen. Greetz. Zitieren
kLeiner_HobBes Geschrieben 7. April 2005 Geschrieben 7. April 2005 Da mußt du IMO aber unterscheiden zwischen Hauptspeicheradressen und Festplattenspeicher-Adressen. Das hat dann auch nicht mehr wirklich mit den Zeigern zu tun. Soweit ich weiß, merkt sich Windows diese Datei noch in der FAT vor (ich weiß nicht, ob dies bei allen FS' der Fall ist). Früher unter MS-DOS wurde z.B. der erste Buchstabe durch ein Fragezeichen ersetzt. Der Speicherbereich ist dann zwar zum Überschreiben freigegeben, aber du kamst noch an die Festplattenadressen dieser Datei dran. Weil die mußt du ja irgendwoher wissen. Wenn ich mich recht erinnere, gibts für Windows ne Shareware namens FileScavenger, die so ne Art UNDELETE-Funktionalität bietet. Gruß Zitieren
sissy66 Geschrieben 7. April 2005 Geschrieben 7. April 2005 ich glaub das braucht man wenn jmd. den namen der Variablen vergessen hat aber die Speicheradresse der Variablen noch kennt :bimei . ok, beim Vergessen kannst Du irgendwie edit/find im Editor machen oder gleich auf der shell das file durchgreppen, um nach der Variable zu suchen in ner win-ide/editor gibts ne kontextsensitive Hilfe, die Dir gleich die Variablennamen anbietet (meistens weiss man noch den 1.Buchstaben und dann erinnert man sich auch an den Rest) das Konzept der kontextsensitiven Hilfe ist vor allem bei membern von unbekannten Klassen nett Ansonsten merk ich mir wohl kaum irgendwelche Adressen - ausser die meiner Freunde - guck Dir mal das mit dem Stack- und dem Heap-Speicher an, dann weisst Du warum man sich als Anwendungs'programmierer' keine Adressen merken kann. (Die Verwaltung des Speichers uebernehmen dann schon lang getestete und robuste Funktionen/Methoden.) Liebe Gruesse, sissy66. Zitieren
Maulwurf_der_Schlaue Geschrieben 7. April 2005 Geschrieben 7. April 2005 Hallo, @sissy66 also ein paar punkte 1. ich bin AEler und bin daher mit der Materie vertraut. 2. war der satz als spaß gedacht, weils eben find und kontextsensitive Hilfe (auch nützlich bei laaaangen namen) gibt und mir kein grund eigefallen ist warum man den inhalt von speicheradressen von denen man den Variablennamen nicht kennt ausgeben will. Zitieren
Guybrush Threepwood Geschrieben 7. April 2005 Geschrieben 7. April 2005 Bei eurer Diskussion ob es Sinn macht sich die Adresse einer Variablen zu merken sollte euch klar sein das diese bei jedem Programmstart bzw Funktionsaufruf anders ist. Bis auf wenige Ausnahmen Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.