Ho iniziato a creare un programma in C ma ho un problema. La traccia è la seguente: dopo aver allocato dinamicamente in un vettore una serie di numeri (condizione di uscita numero<0), stampa a video quanti numeri hai inserito e quali sono questi numeri. Ho provato a farlo ma quando provo a stampare i numeri inseriti mi esce solo l'ultimo e non tutti. Come posso fare? Grazie mille
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
int numero, *numeri=NULL, lunghezza=0;
int conta=0, new_conta=0;
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;
} while (numero>=0 || lunghezza==0);
printf ("\n");
printf ("I numeri inseriti sono %d\n", new_conta);
printf ("I numeri inseriti sono i seguenti\n");
for (i=0; i<new_conta; i++)
printf ("Numero %d: %d\n", i+1, numero);
return 0;
}