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
codice:
typedef struct
{
int frequenza;
char *stringa;
}PAROLA;
PAROLA *vettore_parole = NULL;
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:
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++;
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?
sapreste dirmi qualcosa?
grazie mille