Qualcuno potrebbe spiegarmi l'istruzione dove ho messo i punti di domanda? Se while (val ?= -1) mi permette di bloccare il ciclo digitando -1, allora non capisco a cosa serve l'istruzione v[size-1]=val. Modificando in entrambe le istruzioni -1 con -2 ,il ciclo non dovrebbe avere lo stesso output ma bloccarsi con -2? Infine non mi è' chiara la differenza tra mallocdebug e realloc.. nel mio libro di testo e' stato dato come esercizio chiarificatore sulla malloc la " costruzione "di una qualsiasi matrice dinamica. L'esercizio l'ho svolto e funziona perfettamente ma a questo punto non capisco il motivo per cui in questo esempio non poteva essere usata l'istruzione malloc per allocare la variabile sizeof. Per sizeof infatti , tanto quando oer una matrice dinamica , variabile dim , io non so a priori lo spazio che sarà necessaria allocare.. Grazie mille a tutti coloro che avranno la pazienza di rispondere alle mie domande
codice:#include <stdio.h> #include <stdlib.h> int main() { int *v=NULL ; int i, val; int size = 0; do { printf ( "Inserire un nuovo elemento nell'array :"); scanf ("%d", &val); v = (int*) realloc( v, (++size)*(sizeof(int)) ); v[size-1] = val; // ????????????????????? } while (val != -1); printf( "Elementi nell'array:"); for ( i=0; i < size; i++ ) printf ("%d ", v[i]); free(v); return 0; }

Rispondi quotando
