View Full Version : [C] lettura dinamica
Ciao a tutti, ho un problema.
Come posso leggere da input un certo numero di interi, non specificato, e memorizzare tali valori in un array?
Ad esempio, la riga da leggere è: 2 3 4 5 (termina con invio)
Dovrei memorizzare i 4 numeri in un array, ma non so a priori quanti numeri verranno scritti.
Grazie per l'aiuto!
lupoxxx87
27-05-2010, 23:29
usando puntatori e malloc invece che array di cui dichiari già la dimensione
Ho provato a scrivere questa funzione, ma non dà risultati corretti, qualcuno può aiutarmi?
int * lettura(int *ident){
char c;
int n = 0;
while((c=getchar())!= '\n'){
while(!isspace(c));
n++;
ident = realloc(ident, n*sizeof(int));
ident[n-1] = c;
printf("%d\n", ident[n-1]);
}
return(ident);
};
Grazie!
Teo@Unix
31-05-2010, 14:09
ok, ma puoi indentare meglio il codice? Altrimenti è difficile aiutarti e avrai meno risposte...
cmq per iniziare io inserirei un controllo per il valore di ritorno di realloc()
coocooche
31-05-2010, 17:16
Ciao a tutti, ho un problema.
Come posso leggere da input un certo numero di interi, non specificato, e memorizzare tali valori in un array?
Ad esempio, la riga da leggere è: 2 3 4 5 (termina con invio)
Dovrei memorizzare i 4 numeri in un array, ma non so a priori quanti numeri verranno scritti.
Grazie per l'aiuto!
Potresti prima farti dare il numero esatto degli elementi del array (diciamo n)e poi far inserire gli elementi (n per la precissione).
int leggiArray() {
int x[]; // il tuo array
int i; // indice
int n; // il numero di elementi del array
printf("Numero di elementi: ");
scanf("%d", &n);
printf("Inserisci %d numeri: ");
for (i=0; i<n; i++) {
scanf("%d", &x[i]);
}
return(n);
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.