Código C:
Ver originalif(archivo != NULL){
if(Lista->nEncontradas !=0){
free(Lista
->Palabras
); // <<<--- AQUI!!! Lista->nEncontradas=0;
}
do{
if(contador==0){
Lista->nEncontradas++;
Lista
->Palabras
= realloc(Lista
->Palabras
,Lista
->nEncontradas
*sizeof(Palabra
)); // <<<--- AQUI!!! strcpy(Lista
->Palabras
[Lista
->nEncontradas
-1].
Palabra,salida
); Lista
->Palabras
[Lista
->nEncontradas
-1].
PosCaracterExtra=(int)strchr(Lista
->Palabras
[Lista
->nEncontradas
-1].
Palabra,cadena
[0])-(int)Lista
->Palabras
[Lista
->nEncontradas
-1].
Palabra; }
Si haces un free y después intentas un realloc... no se cómo puede acabar la cosa pero no pinta demasiado bien. Quizás si pusieses
Lista->Palabras a
NULL después del
free....
Un saludo