Wert in bestimmten Speicherplatz ablegen



  • Tach !

    Mit folgendem Programm kann ein user eine Zahl eingeben.Diese Zahl wird in der Variablen 'zahl' gespeichert.Dann lasse ich den Wert von 'zahl' und deren Speicheradresse mit 'zahl' bzw. '&zahl' anzeigen.

    #include <iostream.h>
    
    void main (void)
    
    {
    
    	int zahl=0;
    	cout<<"zahl eingeben.......: ";
    	cin>>zahl;
    	cout<<"\n\n";
    	cout<<"zahl................: "<<zahl;
    	cout<<"\n";
    	cout<<"speicherplatz.......: "<<&zahl;
    	cout<<"\n\n";
    
    }
    

    In meinem Fall wird als Speicheradresse die 0x0012FF7C angegeben.Kann mir jemand sagen wie ich es schaffe, daß ich den Rechner 'zwinge', den Wert der Variablen 'zahl' in einen ganz bestimmte Speicherplatz zu schreiben ? Also z.B. in 0x0037FF7C. Und dann noch wie ich mir den Wert dieses Speicherplatzes dann ansehen kann ?

    Vielen Dank.



  • frosh schrieb:

    Kann mir jemand sagen wie ich es schaffe, daß ich den Rechner 'zwinge', den Wert der Variablen 'zahl' in einen ganz bestimmte Speicherplatz zu schreiben ? Also z.B. in 0x0037FF7C. Und dann noch wie ich mir den Wert dieses Speicherplatzes dann ansehen kann ?

    char* p=reinterpret_cast<char*)(0x0037FF7C);
    *p=17;
    cout<<int(*p)<<'\n';
    

    aber du kannst dir nur speicher anschauen, der auch in den deimen prozess zu verfügung gestellten virtuellen speicher gemappt ist. fremden speicher kriegste nie zu sehen, sondern du kriegst dann eine schutzverletung (schutz der privatsphäre der anderen prozesse).



  • gute Frage!
    könnte mir jemand sagen warum bzw. wozu soll eine variable in einem bestimmten speicherplatz gespeichert? das wird mich interessieren.
    frosh schrieb:

    Also z.B. in 0x0037FF7C

    und wie kämst du auf die Adresse wenn ich fragen darf
    vieln dank



  • stico schrieb:

    und wie kämst du auf die Adresse wenn ich fragen darf
    vieln dank

    Da will wohl jemand:
    - in den grafikspeicher schreiben
    - böse Dinge tun.


Anmelden zum Antworten