Al final un amigo me ha arreglado el problema. El código que fallaba quedaría así .. por si a alguien le puede ser útil.
Código:
buffer = (char *) malloc(sizeof(char)*255);
for (j=0;j<N;j++)
vector_palabras[j]=(char*)malloc(sizeof(char)*255);
j = 0;
do {
final_de_fichero = fscanf (temp, "%s", buffer);
if (final_de_fichero != EOF)
strcpy(vector_palabras[j],buffer);
j++;
} while ((final_de_fichero != EOF) && (j < N));
printf ("\n");
for (j = 0; j < N; j++)
printf(" -%s- ", vector_palabras[j]);
printf ("\n");
Damos esto por solucionado entonces?
Gracias a todos!