Ciao a tutti !
Ho un problema con la funzione di riallocazione di un array dinamico. La funzione che mi riporta il libro la seguente :

codice:
void array_resize(TArray *a, int new_length){
   if(new_length> (a->size) || new_length< (a->size-SHRINK_DELTA)){
      int new_size=new_length+GROWING_DELTA;
      a->item=realloc(a->item, new_size*sizeof(TInfo));
      assert(new_size==0 || a->item!=NULL);
      }
   a->length=new_length;
}
Ora la assert dovrebbe controllare che le condizioni siano vere, e in quel caso il programma procede correttamente. Per quanto riguarda la condizione "a->item!=NULL" è il banale controllo che assicura la corretta riallocazione; quel che non capisco è perche "new_size" debba essere uguale a 0 ! Considerando anche che GROWING_DELTA è una costante positiva a maggior ragione new_size, per come inizializzata, sarà >0. Dov'è l'errore ?