Ich versuche, die Hexadezimalwerte einer Variablen in einer Zeichenfolge aufzuteilen. Dazu benutze ich sprintf
. Aber ich erhalte eine Fehlermeldung: Segmentation fault (core dumped)
Split Hexadezimaldarstellung einer Ganzzahl und speichern Sie es in einer Zeichenfolge
Unten ist der Code, den ich versucht:
#include <stdio.h>
#include <string.h>
int main() {
char* t1;
char* t2;
int n = 0x23A;
sprintf(t1, "%X", n & 0xFF);
printf("t1 is : %s\n",t1);
sprintf(t2, "%X", (n >> 8) & 0xFF);
printf("t2 is : %s\n",t2);
return 0 ;
}
Zum Beispiel möchte ich 0x23A
in 0x02
und 0x3A
aufzuspalten Und ich bin mit zwei String, weil meine Idee verketten ist sie am Ende zu einer einzigen Zeichenfolge mit 023A
zu bilden.
Gibt es einen anderen Weg, um diese Ausgabe zu erhalten, dann lass es mich wissen.
Ich bin mir nicht sicher, warum Sie es "teilen" möchten, wenn alles, was Sie tun müssen, ist z. 'printf ("% 04X ", n)' –
Sie müssen Platz für das Schreiben reservieren, auf das mit 't1' gezeigt wird. – BLUEPIXY
Außerdem schlage ich vor, dass Sie Ihre Zeiger tatsächlich irgendwo zeigen. Oder verwenden Sie stattdessen Arrays. Denken Sie daran, dem Zeichenfolgenabschlusszeichen ein zusätzliches Zeichen zuzuweisen. –