23. november 2000 - 14:05
Der er
2 kommentarer og 1 løsning
Hvorfor virker det ikke?
PWTGroup LoadGrpFromFile(char *FileName){ PWTGroup Result; void *Buff; FILE *GrpFile; GrpFile=fopen(\"Level1.wssc\",\"rb\"); Buff=malloc(_filelength(_fileno( GrpFile ))); fread( Buff,sizeof(Buff),1,GrpFile); fclose(GrpFile); Result=(PWTGroup)Result; return Result; } E-/mil
Annonceindlæg fra Computerworld
23. november 2000 - 15:24
#1
Hvilken part af det er det der ikke virker ??? en sidste cast skal vel være fra void* Buff til Result og ikke Result til Result, sådan som du har skrevet: PWTGroup LoadGrpFromFile(char *FileName) { PWTGroup Result; void *Buff; FILE *GrpFile; GrpFile=fopen(\"Level1.wssc\",\"rb\"); Buff=malloc(_filelength(_fileno( GrpFile ))); fread( Buff,sizeof(Buff),1,GrpFile); fclose(GrpFile); Result=(PWTGroup)Buff; return Result; } Burde du ikke i stedet overføre PWTGroup\'en som parameter, sådan at du ikke behøver at allokere hommelse til den (som du jo ikke kan frigive): bool LoadGrpFromFile(PWTGroup& Result, char *FileName) { FILE *GrpFile; if ((GrpFile=fopen(\"Level1.wssc\",\"rb\")) != NULL) { fread( Result, sizeof(Result),1,GrpFile); fclose(GrpFile); return true; }; return false; } Men denne model får du også mulighed for at checke om det gik godt eller ej.