Problem mit return unsigned char.



  • Hallo Community,

    ich habe folgende Funktion geschrieben:

    unsigned char *hole_daten(char *dateiname)
    {
         FILE *quelle;
         int i;
    
         quelle = fopen(dateiname, "r+b");
         long filesize = get_file_length(quelle);
    
         unsigned char *puffer = new unsigned char[filesize];
    
         if(quelle != NULL)
         fread(&puffer, sizeof(unsigned char), filesize, quelle);
    
    	//hexDump("puffer", &puffer, 32);
    
         return puffer;
    }
    

    Wenn ich die Funktion so ausführe habe ich keine Probleme, und alles funktioniert perfekt:

    hole_daten("datei.dat");
    

    Falls ich die Funktion aber so aufrufe bleibt mein Programm hängen:

    unsigned char * data;
    data = hole_daten("datei.dat");
    

    was genau mache ich da falsch?

    danke!



  • #1: 'new' ist kein C
    #2: nimm mal ein 'const char*' als parameter ansonsten wirds problematisch mit literalen.
    #3: du übergibst fread die adresse deines pointers



  • vielen Dank, habs hinbekommen!


Anmelden zum Antworten