Adressatenspeicherung von Pointer!?



  • Hey Leute,
    hab da ein Problem. Und zwar studiere ich gerade den MD2-ModelImporter wie
    ihr wisst und versteh da etwas erneut nicht. Kurz und knackig, es geht
    um:

    m_pFrameData[nFrame].pVertices;
    

    m_pFrameData ist der Zeiger auf die Struktur "MD2_FrameData"
    []=MD2_Header->numFrames
    Und nun das ".pVertices", ich versteh das nicht. Was hat das da zu suchen
    und wo genau wird diese Variable gespeichert und was wird in ihr gespeichert?
    Ich weiss das "pVertices" ein Pointer auf MD2_Vertex ist, aber MD2_Vertex
    mehrere Instanzen besitzt. Also nochmal, was und wo wird in ".pVertices" gespeichert und wie funzt das, dass da hinten so ein Punkt (".") ist udn wie
    wird diese Variable angenommen?
    Wenn mir das einer kurz und knackig erzählen könnte würde ich ihm seine
    Füsse küssen, ihn Gott nennen und ein Tempel bauen, danke im Voraus!



  • m_pFrameData ist eine Membervariable, ein Pointer der auf das erste Element eines Arrays von Framedaten zeigt.
    Es wird der nFrame'te Frame und mit .pVertices der darin enthaltene Pointer auf dessen Vertices angesprochen.

    Im Grunde hast du also dann einen Pointer auf den ersten Vertex des Frames Nummer nFrame.



  • Hä, ich versteh das nicht ganz!? Was ist der Sinn davon? Wird die Anzahl der Frames somit in MD2-Vertex gespeichert?



  • Gebangt schrieb:

    Hä, ich versteh das nicht ganz!? Was ist der Sinn davon? Wird die Anzahl der Frames somit in MD2-Vertex gespeichert?

    Schau dir mal die Deklaration der MD2_FrameData Struktur an da sollte ein Member pVertices sein.

    BR
    Vinzenz



  • struct MD2_Vertex
        {
            BYTE vertex[3];
            BYTE lightNormalIndex;
        };
    

    Die BYTE-Instanzen können jetzt also auf die Framedaten und deren Anzahl zugreifen?



  • Gebangt schrieb:

    struct MD2_Vertex
        {
            BYTE vertex[3];
            BYTE lightNormalIndex;
        };
    

    Die BYTE-Instanzen können jetzt also auf die Framedaten und deren Anzahl zugreifen?

    Byte sollte einfach ein 8 Bit datentyp sein, da kann man eigentlich auf nichts weiter zugreifen.

    Bist du dir sicher dass das Array bei dem du hier:

    m_pFrameData[nFrame].pVertices;
    

    zugreifst wirklich MD2_Vertex ist?

    Denn das würde nicht mal kompilieren, da MD2_Vertex den member "pVertices" nicht besitzt. Schau dir das noch mal genau an ob m_pFrameData wirklich ein Array vom type MD2_Vertex ist.

    BR
    Vinzenz



  • Solangsam werde ich richtig durcheinander ô_Ò....=(
    Schau es dir doch mal bitte eben an:
    http://home.arcor.de/cppjunky/tutorials/md2/tutor_md2p2.htm



  • Wird mit "m_pFrameData[Frameanzahl].pointer_auf_MD2_Vertex-Struktur" m_pFrameData eine Instanz von MD2_Vertex?


  • Administrator

    Wenn das auch jetzt zuerst einmal etwas böse klingen mag, so ist das äusserst freundlich gemeint:
    Lern zuerst mal C++! Ein Buch, welches oft empfohlen wird, ist "C++ Primer". Ich glaube das nützt dir am meisten. Jeder, welche die Grundlagen von C++ verstanden hat, sollte den verlinkten Code auf der Stelle verstehen oder jedenfalls ganz sicher die Stelle, welche du angibst.

    Grüssli



  • Bekomm ich jetzt noch eine kleine Hilfe oder wird hier wieder ausgewichen?



  • Jeder, welche die Grundlagen von C++ verstanden hat, sollte den verlinkten Code auf der Stelle verstehen

    Nee, dass ist nicht das Problem, den Code selber hab ich beim ersten lesen verstanden, aber welchen SInn hat er?


  • Administrator

    Was verstehst du unter Sinn? Ich habe eher das Gefühl, dass du die C++ Syntax nicht beherrschst. Und es ist meiner Meinung nach das absolute Minimum, was man von jemanden erwarten kann, nämlich dass er die C++ Syntax zumindest in den Grundlagen beherrscht. Und dazu gehören das Arbeiten mit Pointern und Arrays.

    Es wird in einem Array, bestehend aus MD2_FrameData Objekten, auf das nFrame'te Objekt zugegriffen. Dieses Objekt, vom Typ MD2_FrameData, enthält ein public Attribute mit dem Namen pVertices, welches ein Zeiger auf ein Objekt vom Typ MD2_Vertex ist. Und auf diesen Zeiger mit dem Namen pVertices von dem nFrame'ten Objekt vom Typ MD2_FrameData wird nun zugegriffen.

    Aber das wurde schon mal gesagt und mehr gibt es dazu nicht zu sagen.

    Grüssli


Anmelden zum Antworten