Originariamente inviato da {-_-}
in pratica mi è stato detto:
quando usi una struttura dinamica, utilizza sempre una variabile di supporto inizializzata a -1, che conta il numero di iterazioni,

ad esempio ho un elenco da riempire di nomi, per gestire la dinamicita, mettendo gli elementi in contiguità fisica nello stack, mi è stato detto di inizializzare la variabile di supporto sempre a -1,

mettiamo caso che i nomi da inserire siano 50,

allora dovrei fare qualcosa di questo tipo:

for (ultimo=-1; ultimo < 50-1; ultimo ++)

quello che non capisco è:

perchè devo usare il -1, e non posso fare smeplicemente

for (ultimo=0; ultimo<50; ultimo++)

dal punto di vista matematico è la stessa identica cosa, forse serve per evitare lo sfondamento del vettore in fare di ricerca, cancellazione, sostituzione?

spero di essere stato più chiaro,

Grazie ancora
for (ultimo=-1; ultimo < 50-1; ultimo ++)

questo codice generera' sicuramente un errore, poiche' il primo campo al quale tentera' di accedere e' -1 e non e' valido

cmq scrivere 50-1 o 49 e' identico, ma se usi una variabile di dimensione per inizializzare l'array ha + senso scrivere "50-1"
es:

int n = 50;
char *a[n];
int i;
for (i =0; i<n-1;i++)//se metti n e basta il ciclo lavorera' sull'elemento a[n] (a[50]) che non esiste