Salve
mi potreste aiutare a trovare l'errore di segmentazione in questo programma?
Non so se il problema è dovuto alla realloc...
Grazie
codice:#include <stdio.h> #include <stdlib.h> #define DIM 5 /*Realizzare un programma che permetta di memorizzare i voti di una disciplina. Non conoscendo a priori la quantita' di valutazioni il programma inizialmente allochera' in modo dinamico lo spazio sufficiente per 5 voti. Successivamente, quando lo spazio si esaurira', verra' allungato lo spazio precedente in modo da poter inserire altre 5 valutazioni. */ main(){ int cont=0,n=0,continua=1; int *ptrvoti=NULL,*app=NULL; ptrvoti = (int*)malloc(sizeof(int)*5); if(ptrvoti==NULL){ printf("ERRORE\n"); return; } app=ptrvoti; while(cont<DIM && continua==1){ printf("Vuoi continuare ad inserire voti? (1 per continuare, 0 per terminare) \n"); scanf("%d", & continua); if(continua==1){ printf("inserisci voto \n"); scanf("%d", ptrvoti); n++; ptrvoti++; } else if(continua==0){ break; } else{ printf("ERRORE\n"); return; } if(n==5){ ptrvoti = (int*)realloc(ptrvoti,sizeof(int)*(5+DIM)); cont=0; } cont++; } ptrvoti=app; for(cont=0;cont<n;cont++){ printf("%d ", *ptrvoti); ptrvoti++; } }


Rispondi quotando

