[C/C++] Experiment mit Pointer

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von myth2806, 11. Mai 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 11. Mai 2007
    Experiment mit Pointer

    Hey leutz,

    ich spiele grade mit Pointer in C rum und will den Variableninhalt eines Programms durch ein anderes Programm beeinflussen.
    Ich habe also hier zwei einfach Programme, die verdeutlichen sollen was ich vor habe.

    Das zu manipulierende:
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
     int x=1;
     int *p = &x;
     printf ("%p\n",p);
     system("PAUSE");
     printf ("%d\n",x);
     return 0;
    }
    
    Das manipulierende:
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
     int *p;
     scanf ("%p",&p);
     *p = 45;
     return 0;
    }
    
    Ja also ich denke es wird schnell klar was die Porgramme machen sollen: Das erste soll einfach eine Variable anlegen und den Wert 1 reinspeichern, die Speicheradresse ausgeben und dann kurz warten. In der zwishenzeit wird Programm2 ausgeführt welchem man die Speciheradresse der Variable "x" im ersten Progamm mitteilt und dieses Programm soll jetzt eine andere Zahl dort hinein schreiben. Joa nur leider geht das nicht. es wird in Programm1 anschließend immer die Zahl 1 ausgegeben.
    Ich bin dem jenigem dankbar, der mir erklären kann warum das nicht funktioniert und mir einen neuen Denkansatz gibt :]

    Danke schonmal,
    greez myth
     
  2. 11. Mai 2007
    AW: Experiment mit Pointer

    Das wird auch nie so einfach gehen, Virtuellen Speicher sei dank. Unter jedem OS das im Protected Mode (32bit) oder Long Mode (64bit) läuft (Window, Linux) hat jeder Prozess seinen eigenen linearen 4gb großen virtuellen Speicher. So wird gewährleistet das die Prozesse sich ned gegenseitig beinflussen können. Aber du kannst dir bei Windows mit der API zugriff zu dem virtuellen Speicher anderer Prozesse verschaffen (ich glaube OpenProcess usw...).

    mfg r90
     
  3. 11. Mai 2007
    AW: Experiment mit Pointer

    ich muss razor90 zustimmen.

    die speicherverwaltung von einem os lässt das erst gar nicht zu:

    bsp:

    programm 1
    int *p = &x;
    der pointer zeigt z.B. auf 0xF345;

    programm 2
    int *p;
    *p = 45;
    dieser pointer zeigt komplett wo anderst hin, durch die speicherverwaltung z.B. 0x37FC

    weißt was ich damit meine.
    du müsstest schon irgendwie den speicher auslesen und schauen wo etwas steht und diesen wert dann lesen, oder den pointer in programm 2 sichtbar machen.

    jedenfalls zeigen die auf komplett 2 verschiedene adressen!!

    gruß wollknoll
     
  4. 11. Mai 2007
    AW: Experiment mit Pointer

    achso schade
    ich hatte gehooft, dass die adresse einer veriable im ram von jedem programm gleich behandelt wird.

    danke an euch

    greez myth

    //closed
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.