Buongiorno, sto provando ad eseguire questo programma che mi dice se i numeri del mio vettore dinamico sono pari o dispari ma non mi riporta i risultati sperati. Potete aiutarmi a trovare l'errore? Grazie mille
#include <stdio.h>
#include <stdlib.h>
int main()
{
	int i;
	int numero, *numeri=NULL, lunghezza=0;
	int conta=0, new_conta=0;
    int numeri_pari=0, numeri_dispari=0;
	FILE *fd;
	
	do {
		printf ("Inserisci un numero: \n");
		scanf ("%d", &numero);
		if (numero>=0) {
			numeri=(int*)realloc(numeri,++lunghezza*(sizeof(int)));
			if (numero<0) {
				printf ("Memoria insufficiente per allocare\n");
				exit (1);
			}
		    *(numeri+(lunghezza-1))=numero;
	   } 
	   
	   conta=conta+1;
	   new_conta=conta-1;
	   
	   if (numero%2)
	   numeri_pari=numeri_pari+1;
	   else
	   numeri_dispari=numeri_dispari+1;
	   
	
	   } while (numero>=0 || lunghezza==0);
	   
	   printf ("\n");
	   printf ("I numeri inseriti sono %i\n", new_conta);
	   
	   printf ("I numeri inseriti sono i seguenti\n");
	   
	   for (i=0; i<new_conta; i++)
	   printf ("Numero %i: %d\n", i+1, numeri[i]);
       
       fd=fopen("Numeri.txt", "w");
       if (fd==NULL) {
	   perror ("Errore in apertura del file");
	   exit (1);
	 }
	   for (i=0; i<new_conta; i++)
	   fprintf(fd, "Numero %i: %d\n", i+1, numeri[i]);
	   fclose (fd);
	   
	   printf("\n");
	   
	   for (i=0; i<new_conta; i++)
	   if (numero%2) {
	   printf ("Il numero %d è pari\n", numeri[i], numeri_pari); }
	   else 
	   printf ("Il numero %d è dispari\n", numeri[i], numeri_dispari);
	   
	   return 0;
}