ciao grazie per le risp, cmq ho risolto quel problema mettendo due campi come hai detto te ma mi sono inbattuto in un'altro probelma:
Codice PHP:
/* Metodo che preleva dal file in input tutti i lemmi e li stampa a video*/
struct lemma_cell *read_file(FILE *stream, lemma_cell *lista){
char ch;
char *lemma = NULL;
int i=0;
int row=1;
lemma = (char *)malloc(sizeof(char));
printf("I lemmi del file che inserisco nella lista e nel database:\n");
while((ch = fgetc( stream )) != EOF){
if((ch != ' ')&&(ch != '\n')){
lemma = (char*)realloc(lemma,(i+1)*sizeof(char));
lemma[i]=ch;
i++;
}else{
if(ch == '\n') row++;
lemma[i]='\0';
lista = add(lista,lemma,i,row);
printf("->%s\n", lemma);
free(lemma);
i=0;
}
}
/* Ultimo lemma del file che rimane fuori dal ciclo */
lemma[i]='\0';
lista = add(lista,lemma,i,row);
printf("->%s\n", lemma);
return(lista);
}
questo metodo, passatogli il file mi "estare" ongi lemma e li dovrebbe aggiungere alla mia lista con quasto altro metodo:
Codice PHP:
/* Metodo per aggiungere un lemma e le sue statistiche alla lista */
struct lemma_cell *add(struct lemma_cell *lista, char *lemma, int l, int row){
struct lemma_cell *new_cell;
if (lista != NULL){
new_cell = (struct lemma_cell *)malloc(sizeof(struct lemma_cell));
new_cell->row = row;
new_cell->n = 1;
new_cell->l = l;
new_cell->lemma = lemma;
new_cell->next = lista;
}else{
lista = (struct lemma_cell *)malloc(sizeof(struct lemma_cell));
lista->row = row;
lista->n = 1;
lista->l = l;
lista->lemma = lemma;
lista->next = NULL;
new_cell = lista;
}
return(new_cell);
}
quando vado a controllare la mia lista, tutti i lemmi di ogni cella sono uguali tra loro e più precisamente all'ultimo lemma estratto! cosa sto sbgliando?
nb questo problema non accade per gli altri campi della lista di tipo int
grazie