salve a tutti!
ho un problema con il progetto che devo consegnare per un esame dell'universita',
si tratta di un programmino che comprime un testo in RLE e memorizza la frequenza cn cui le parole si ripetono nel testo
sarei grato se qualcuno riuscisse a spiegarmi questa cosa perchè sto debuggando da giorni e nn riesco a cavare un ragno da un buco..
nel progetto ho un array di strutture di tipo
e un ciclo in cui le strutture di questo vettore vengono riempite una per una cn una stringa che è la parola e un intero che è la frequenza cn cui appare nel file di testo preso in input questa parola. Cosi:codice:typedef struct { int frequenza; char *stringa; }PAROLA; PAROLA *vettore_parole = NULL;
il mio problema è che debuggando ho notato che certe volte (piu che altro cn file input grandi) il campo frequenza viene sovrascritto al campo stringa di altre parole dell'array vettore_parole, proprio sullo stesso indirizzo, verificato col debugger.. cm è possibile?codice:vettore_parole[l].stringa = (char*)calloc(j + 1, sizeof(char)); for(m = 0; m < j; m++) vettore_parole[l].stringa[m] = tmp[m]; vettore_parole[l].stringa[j] = '\0';//null termino la stringa vettore_parole[l].frequenza = 1;//la parola è presente 1 volta nel testo parole_inserite++;
sapreste dirmi qualcosa?
grazie mille