Ciao Ragazzi,

sono alle prime armi in C e i puntatori sono la mia bestia nera..
questo è il quesito.

Ho una struttura definita globale in un file.h e nel main la includo con "include file.h" ed è di questo tipo:

codice:
typedef struct{  
 int nmax; 
  int nsp; 
  double *p; 
}data

Ora nel file file.c definisco una funzione di inizializzazione della mia struttura, per allocare spazio per p che è un vettore di nmax elementi:

codice:
void init_struc(data *dat)
{
 int nmax=dat->nmax;
  dat->p=malloc((nmax)*sizeof(double*))
for(i=0;i<nmax;i++)
   dat->p[i]=0
}
Nel main main.c devo utilizzare questa struttura. E Ho un pointer *q che deve assumere il valore del pointer dat->p. Non voglio utilizzare nel main sempre dat->p percio voglio nominarlo con un puntatore *q (questo è quello che vorrei fare).

La domanda è questa..come faccio a far puntare a q lo stesso indirizzo di dat->p?

ho provato con
codice:
q=&dat->p[0]
ma ho ottengo il classico segmentation fault.

Potete aiutarmi??

Grazie a tutti