salve a tutti
ho un piccolissimo problemino, sta facendo un programma con un mai iniziale che si richiama una funzione
"void carica_immagine_in_A( double **A, int *n, int *m, int *p, double **h)"
dove A e h sono array, sono doppi puntatori in quanto devono ritornarmi nel main. Fin qui tutto bene. Posto il codice così si capisce meglio
codice:
/*funzione che carica l'immagine nell'array A*/
void carica_immagine_in_A(double **A, int *n, int *m, int *p, double **h)
{
/*dichiarazione delle variabili*/
FILE *fp;
int N,M,j,z,i;
if((fp=fopen("dati5","r"))==NULL)
{
printf("Errore nell'aprire il file %s","dati5");
exit(1);
}
fscanf(fp, "%d\n",&(*n));
fscanf(fp, "%d\n",&(*m));
fscanf(fp, "%d\n",&(*p));
M=2*(*m);
*h=(double*)calloc(M,sizeof(double));
/*controllo se è posibile allocare h*/
if(*h==NULL){
printf("Memoria insufficiente per allocare il vettore dei filtri");
exit(1);
}
for(j=0;j<M;j++)
{
fscanf(fp,"%lf",&(*h[j]));
printf("\nj= %d ",j);
printf("h[%d]=%lf\n",j,*h[j]);
}
}
il problema è quando lo eseguo, quando legge il vettore h dopo un paio di passi fa "segmentation fault"
M la vede e mi dice anche quanto è. L'array lo alloca. Non riesco a capuire dove sta il problema.
Help me