Ciao
Sto testando un mio programma tramite una funzione di test che mi è stata fornita per il progetto che sto realizzando. Praticamente come parte il primo test mi dà questo errore:
il quale dovrebbe essere relativo a questa parte di codice: (scritta da me)codice:Test CREATE Test:[10101] Peso:[3] - [CREATE: nome NULL] Errore [-1] in [CreateDatabaseFile]-->[Nome DB nullo o non valido o NumFields<=0] *** glibc detected *** free(): invalid pointer: 0xbfc04470 *** Abortito
Il sorgente del della funzione di test invece è questo: (metto solo la parte interessata)codice:int CreateDatabaseFile(char *Name, int NumFields, FIELD_DATA_t *FieldData){ int test; int i; char *finale; int headerlen; header *h; if((Name==NULL) || (cercaErr(Name)==1) || (NumFields<=0)){ char Err1[256]; (void) sprintf(Err1, "Nome DB nullo o non valido o NumFields<=0"); LPC_GestioneErrore(LPC_BAD_ARG, "CreateDatabaseFile", Err1); free(Err1); free(h); free(finale); free(FieldData); free(Name); return LPC_BAD_ARG; }
Non riesco a capire quale free() gli dà fastidio.codice:void TestCreate(void) { int ret= 0; int NumFields = 0; FILE *fp; FIELD_DATA_t FieldData[MAX_NUM_FIELDS]; int len, len1; char buf[500], buftest[500]; printf("Test CREATE\n"); // Test sul nome // null test[numtest].testid = 10101; test[numtest].weight = 3; strcpy(test[numtest].desc, "CREATE: nome NULL"); printf("Test:[%d] Peso:[%d] - [%s]\n", test[numtest].testid, test[numtest].weight,test[numtest].desc); ret = CreateDatabaseFile(NULL, NumFields, &FieldData[0]); printf("Ritorno della create: [%d]\n\n", ret); if (ret != LPC_OK) test[numtest].passed = 1; numtest++;


Rispondi quotando