He cambiado el codigo como dijiste, aunque lo del final de fichero ya lo tenía controlado con las variables, pero bueno, por si acaso, pero no .. sigue igual, es decir, me sigue mostrando la ultima palabra todo todo el rato en vector_palabras[j]:
Código:
do {
final_de_fichero = fscanf (temp, "%s", buffer);
if (final_de_fichero != EOF) {
printf ("::%s::", buffer);
vector_palabras[j] = buffer;
}
printf(" .%s. ", vector_palabras[j]); /*<-- muestra BIEN - cada palabra */
j++;
} while ((final_de_fichero != EOF) && (j < N));
printf ("\n");
for (j = 0; j < N; j++)
printf(" .%s. ", vector_palabras[j]); /*<-- muestra MAL - la ultima siempre*/
printf ("\n");