Direkter Zugriff auf eine Adresse
-
Hallo zusammen
Mit einem Zeiger kann man ja auf eiene Adresse einer Variable zugreiffen. Also z.B:
main()
{
int *zeiger
int k = 1
zeiger = &k
...
}Alles bekannt.... Ist es nun aber möglich, die Adresse, auf welche der Zeiger zeigen soll, von Hand einzugeben? Also in der Art von zeiger = (Adresse)?
Ich habe überall im Internet gesucht, aber leider wird immer nur die Variante mit dem Zeigen auf eine Variable genannt.Gruss
Raffael
-
Natürlich funktioniert das, du musst nur die Speicheradresse des Bezugsobjekts wissen.
-
Hallo
Die Speicheradresse weiss ich natürlich. Aber wie zeige ich mit dem Zeiger auf diese Adresse. Der Synthax ist mir unklar.
zeiger = &(Adresse), (z.B zeiger = &0x57) analog zu zeiger = &Variable funktioniert ja leider nicht.
Gruss
Raffael
-
Also um es klar zu machen. Ich möchte mit einem Zeiger direkt auf die Adresse
&H0057 zeigen. Wie mache ich das?
-
int *x = (int*)0x57;
-
Vielen Dank!
-
Hallo zusammen
Ich habe nun ein kleines Programm erstellt, welches auf eine beliebige Speicheradresse zugriffen kann. Allerdings kann das Programm die Adresse nur Lesen. Ist es auch möglich, die Adresse zu beschreiben?
Gruss
Raffael
-
natürlich geht das. Schau dir mal das Pointer Tutorial an http://pw1.netcom.com/~tjensen/ptr/pointers.htm
Mit der Methode zum Speicher auslesen, die du jetzt benutzt, wirst du auf modernen OSs, die den PM benutzen, nicht viel Erfolg haben sondern nur Segmentation Faults ernten.
-
int *x = (int *)0x12345678; // lesen: int foo = *x; // schreiben: *x = 0x12345678;
Hoffe das reicht
-
Hi,
ich kann nun einmal die Fehler nicht so im raum stehen lassen:
Das geht sicher nur so:
#include <stdlib.h> #include <stdio.h> int main () { int *x ; x = (int *)malloc(1 * sizeof(int)); int foo ; // schreiben: *x = 0x12345; // lesen foo = * x; printf("Der Adresse, auf die x zeigt, ist %x\n",*x); printf("sie ist auch ist %x\n",foo); }
gruss
pierre