Gast
#2048300
Hallo! Ich habe ein kleines Problem mit dem Verständnis: Ich möchte einen Wert (z.B. 0x42) direkt an eine Adresse (z.B. 0x4223) schreiben. Wie sieht der Syntax dazu in C aus? Ich benutze GCC für ARM.
|
Anzeige
|
Wert an Adresse schreiben
Gast
#2048300
Hallo! Ich habe ein kleines Problem mit dem Verständnis: Ich möchte einen Wert (z.B. 0x42) direkt an eine Adresse (z.B. 0x4223) schreiben. Wie sieht der Syntax dazu in C aus? Ich benutze GCC für ARM.
Gast
#2048308
Ich denke mal, das geht über einen Zeiger. Wenn mich nicht alles täuscht ist das
Das könnte aber Probleme geben, wenn der Compiler die Adresse selber benutzt. Dann werden die Werte immer wieder überschrieben.
Gast
#2048315
Ganz so einfach scheint es doch nicht zu sein. Mein Compiler zeigt mir einen Fehler an. Anscheinend kann man nicht so einfach Adressen zuweisen.
Gast
#2048319
Dussel schrieb: > Mein Compiler zeigt mir einen Fehler an. und welchen?
Gast
#2048327
invalid conversion from 'unsigned int' to '*int' Anscheinend müsste ich dem irgendwie mitteilen, dass das eine Adresse sein soll. Jetzt sieht er es als einfach Zahl, die natürlich nicht einem Adresstyp zugewiesen werden kann.
Gast
#2048331
Ach, es ist 'int*'
Gast
#2048342
Es sollte auch ohne explizit definiertem Zeiger gehen: *((int*) 0x4223) = 0x42;
Gast
#2048348
Oder besser (da Adresse ungerade): *((char*) 0x4223) = 0x42;
Gast
#2048420
Um meine Version noch zu retten: Die Adresse muss als Adresse gecastet werden, also Adresse=(int*)0x4223; Also das Gleiche, was in den anderen Vorschlägen gezeigt wurde. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|