char array ende?
-
Ich schreib grad einen MS3D Loader in C++.
Doch hab ich beim Header ein Problem.Einlesen tu ich so:
[...] // Allocate memory: char* buffer = new char [length]; // Read data as a block: is.read (buffer, length); is.close(); // Read header MS3DHeader* header = (MS3DHeader*)buffer MessageBox(NULL, header->id, "", MB_OK); // test if (strcmp(header->id, "MS3D000000") != 0) return false;Mein Header struct ist auch korrekt laut Dateispezifikation. Es ist ein char[10], der immer "MS3D000000" ist. Auf jeden Fall ist das Problem, dass strcmp sagt, dass die beiden nicht gleich sind.
In der MessageBox steht folgendes:
http://bloody-blades.de/images/messageBox.pngVielen Dank
-
header->id ist nicht Null-terminiert.
if (strncmp(header->id, "MS3D000000", 10) != 0)
-
Ah, wunderbar
Sowas hab ich mir auch schon gedacht, aber ich kannte die andere compare Funktion noch nicht, vielen Dank!