La id con cui controlli il risultato della realloc deve stare all'interno della if in cui viene eseguita la realloc ...

Se sta fuori, come nel codice che hai scritto, e la prima if non viene eseguita, il controllo non ha senso ...