Salve a tutti, ho questo problema:

un file di testo txt è così formattato. nella prima riga c'è il numero di parole contenute (una per riga) all'interno di questo file.

esempio:
codice:
4
parola1
parola2
parola3
parola4
il numero di parole non è dato a priori (quindi va usata l'allocazione dinamica) ma sono massimo di 20 caratteri ognuna. Io voglio acquisirle chiamando una funzione apposita che mi vada a scandire questo file e memorizzare il contenuto in un puntatore che gli passo dal main (vedi codice sotto).

il problema arriva ora: io nella funzione eseguo la malloc ma quando ritorno al main il vettore dinamico penso che venga deallocato perchè se faccio un ciclo di printf nel main non ottengo i valori che avrei dovuto acquisire.

come posso usare la malloc in maniera tale da "vedere" i valori acquisiti all'interno della funzione anche nel main (e di conseguenza in qualsiasi altra funzione)?

QUI IL CODICE:
codice:
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h>  

typedef struct qualsiasi {char parola[20]; } ind;  

int dizionario(ind *indice);  

int main() {     
  ind *indice;     
  int i,num;

  num=dizionario(indice); 

  return (EXIT_SUCCESS); }

int dizionario(ind *indice) { 
  FILE* diz;
  int num,i;
  diz=fopen("/home/paolo/Documenti/Paolo/Docs/Algoritmi/NetBeans/lab04_es01/dizionario.txt","r");      
  fscanf(diz,"%d",&num);
  indice=malloc(num*sizeof(ind));
  for(i=0;i<num;i++) {
    fscanf(diz,"%s",indice[i].parola);
  }
  fclose(diz);
  return num; }
Grazie!