char mit Adresse -> int mit Adresse

MSAB

Mitglied
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:
Code:
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:
Code:
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
 
das problem ist, das du mit atoi() keine hex dezimal zahl konvertieren kannst...
Code:
atoi("0xFF");
macht also keinen sinn...
 
Danke, ich hab es jetzt mit sscanf probiert:

Code:
char a[9];
a= "0x23eb45";

void *px;
sscanf (a,"%x",&px);

Das funktioniert soweit auch, nur kommt er beim kompilieren mit folgender Warnung:
[Warning] unsigned int format, pointer arg (arg 3)
Wie kann ich das verhindern, bzw. woran liegt das erstmal :D
 
Zurück