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
il problema è quando lo eseguo, quando legge il vettore h dopo un paio di passi fa "segmentation fault"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]); } }
M la vede e mi dice anche quanto è. L'array lo alloca. Non riesco a capuire dove sta il problema.
Help me![]()

Rispondi quotando
