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!