2012-04-14 10 views
0

Ich verwende ein Objekt GLMmodel, um ein Google Sketch Up-Modell in einem C++ - Programm darzustellen. Diese Objekte haben ein Element (Scheitelpunkte), das eine Liste aller Scheitelpunkte des Objekts in folgender Weise enthält: [GLfloat x Komponente von Scheitelpunkt 1, GLfloat y-Komponente von Scheitelpunkt 1, GLfloat z-Komponente von Scheitelpunkt 1, GLfloat x-Komponente von Vertex 2 ...]. Wenn ich alle diese Werte lese, erhalte ich für alle kleine Zahlen, mit Ausnahme der ersten drei (die Koordinaten des ersten Eckpunkts), die alle drei sind -431602080.000000. Das macht in meinem Programm keinen Sinn. Ich habe es gegooglet und ich habe gefunden, dass dieser Wert häufig in C++ - Programmen erscheint, aber ich weiß nicht, was es bedeutet. Irgendwelche Ideen?Was bedeutet -431602080.000000 Wert in GLMmodel Vertex bedeutet?

Antwort

5

Ja, das ist ein "magischer Wert". Wenn Sie die Variable mit dem Debugger in der Hex-Ansicht betrachten, sehen Sie 0xcdcdcdcd. Das ist kein zufälliger Wert, das ist ein Wert, der von dem Debug-Zuordner des Microsoft CRT verwandt wird. Für einen, möglicherweise andere. Dies initialisiert jeden Speicher, den Sie mit malloc zuweisen oder neu für diesen Wert. Es ist nicht so klar mit Variablen vom Typ float oder double natürlich, einfacher mit Ints und Strings und besonders nützlich mit Zeigern. Unter der Annahme, dass Sie die MS CRT verwenden, sind Debug-Zuordnungs-Zauberwerte documented here.

Sie haben vergessen, den Wert zu initialisieren. Das ist ein Fehler in Ihrem Code.

+0

Sehr interessant. Danke, Mann! – user1031431