unsigned short - malloc Verständnisproblem



  • Hallo zusammen,

    ich hab hier gerade ein Brett vorm Kopf.
    Ich lese aus einer binary datei werte aus.
    Das klappt auch für alle int´s chars und so weiter wunderbar.
    Nur bei den unsigned shorts passiert was was ich nicht verstehe:

    ich lese so aus;

    unsigned short* trashpoiterShort;
    trashpoiterShort = (unsigned short*)malloc( dataLenght );
    fread( &trashpoiterShort , 2, dataLenght/2, this->dataFile );
    
    printf( "\n data vertex: %hu , %hu , %hu , %hu  --" , &trashpoiterShort[0] , &trashpoiterShort[1] , &trashpoiterShort[2] , &trashpoiterShort[3] );
    

    als ausgabe kommt:
    data vertex: 22 , 24 , 26 , 28 --
    aber die echten werte im binary sind:
    22, 33, 44, 55, 66, 77

    ich habe schon mehrfach die werte geändert in dem binary, das einzige was sich immer ändert und dann auch stimmt ist die erste zahl.

    kann mir da mal jemand kurz den entscheidenen klaps auf den hinterkopf geben ?

    vielen dank !
    kai



  • unsigned short* trashpoiterShort;
    trashpoiterShort = (unsigned short*)malloc( dataLenght );
    fread( &trashpoiterShort , 2, dataLenght/2, this->dataFile );
           ^
    

    das ist zuviel.

    printf( "\n data vertex: %hu , %hu , %hu , %hu  --" , &trashpoiterShort[0] , &trashpoiterShort[1] , &trashpoiterShort[2] , &trashpoiterShort[3] );
    

    Hier überall dasselbe. Warum willst du die Adressen der Arrayelemente übergeben?



  • 🙄 ich versinke vor scharm im boden ...
    das ist wohl der richtige zeitpunkt den 14 stunden programmiertag zu beenden ..

    vielen Dank !! so klappt es natürlich !!


Anmelden zum Antworten