char mit Adresse -> int mit Adresse
-
Moin, ich hab ein kleines Problem mit einer Typenumwandlung
Undzwar habe ich ein char, der mit einer Adresse gefüllt ist, also z.B. so:
char a[9]; a="0x23eb45";Mein Problem ist jetzt, dass ich diese Adresse jetzt bei einem Void-Zeiger verwenden möchte, dazu muss ich sie ja denk ich zum integer umwandeln. Doch da liegt das Problem. Wenn ich atoi() verwende, stürtzt das Programm einfach ab. Ich hab auch schon versucht, einfach zu casten:
int p = (int)a; void *px; px = (int*)p;Aber dann hat px anstatt der Adresse die im char stand, die Adresse von a.
Könnt ihr mir sagen, wie ich jetzt beispielsweiße aus einem char mit dem Inhalt 0x23eb45 ein integer mit den Wert 0x23eb45 mache?
Hach, wie ich diese Pointer liebe
MfG
MSAB
-
hi,
kannst es so machen:char a[9]; void *px; strcpy (a, "0x23eb45"); // hex-string ins array schreiben sscanf (a, "%x", &px); // umwandeln in eine zahl und in den pointer damit:xmas2:
-
Nur mal so: Was macht es für einen Sinn, eine Adresse in einem char-Array zu verwalten?
-
Danke ten, das funktioniert soweit, nur kommt er mit folgender Meldung:
[Warning] unsigned int format, pointer arg (arg 3)
Wie kann man das verhindern?
@ Badestrand: Sie darin zu verwalten macht sicherlich nicht allzuviel Sinn, da hast du recht, aber ich verwalte sie darin auch nicht, sondern bekomme die Adressen nur in einer Datei von einem anderen Programm "geschickt".