Ich habe einige Code, der eine char *
in eine binäre Datei schreibt wie folgt:Schreiben Strings binäre Dateien in C
FILE *fp = fopen(path, "wb");
if (fp == NULL) {
printf("Failed to open file at path: %s. %s\n", path, __PRETTY_FUNCTION__);
return;
}
fwrite("Hello", 6, 1, fp);
Das Problem ist, dass, wenn ich dann aus dieser Datei lesen sich wie so:
FILE *fp = fopen(path, "rb");
if (fp == NULL) {
printf("Failed to open file at path: %s. %s\n", path, __PRETTY_FUNCTION__);
return;
}
char *str;
fread(str, 6, 1, fp);
printf("Got str: %s\n", str);
Ich bekomme unterschiedliche Ergebnisse z Oello
oder Mello
. Was ist los?
Sie setzen nie den 'char * str' oder bin ich falsch? –
Geben Sie ** all ** Ihren Code ein. In Ihrem geposteten Code lesen Sie in 'id': 'fread (id, 6, 1, fp);' (* vielleicht * lesen - Sie überprüfen nicht den Rückgabewert ...), aber Sie geben den Inhalt von was auch immer aus Die nicht initialisierte Variable 'str' zeigt auf:' printf ("Got str:% s \ n", str); ' –
Sorry, das war ein Tippfehler. Ich lese in die Variable str. Die ID stammt von einer früheren Implementierung, die ich in str geändert habe, damit ich testen konnte, was falsch lief. –