ciao a tutti...vorrei passare a una funzione un array di numeri.
Dalla funzione però mi servirebbe una funzione per sapere quanto è lungo l'array...esiste?
ciao a tutti...vorrei passare a una funzione un array di numeri.
Dalla funzione però mi servirebbe una funzione per sapere quanto è lungo l'array...esiste?
mi aiutate un attimo?![]()
Dato che ormai avete capito il prg che volevo fare...volevo che mi stampasse i valori, come si fa?
codice:#include <stdio.h> int main() { int array[10] = {1,2,3,4,5,6,7,8,9,10}; stampaArray(array); getch(); return 0; } void stampaArray(int a[]){ int i; for(i=0;i<10;i++) printf(a[i]); }
si usa cosi??
for(i=0;i<sizeof(array);i++) printf("%d", array[i]);
numero di elementi di array: sizeof(array)/sizeof(*array)
In genere però questo non funziona sempre, ad esempio se allochi l'aray dinamicamente con malloc non puoi usare sizeof. In c quando passi un array ad una funzione devi anche passare un argomento aggiuntivo che indica la lunghezza.
esatto anx..cercavo proprio di non passare alla funzione un elem aggiuntivo. Considera cmq che il mio array ha 10 elementi e quindi non varia la lunghezza. che ne pensi? non si puo?
Nel tuo caso il sizeof mi pare funzioni perche sizeof(array) ti dà la dimensione in bytes di tutto l'array e dividendo per la dimensione in bytes del primo elemento dovresti ottenere il numero di elementi.
se il tuo array è statico, cioè con dimensione FISSA a un numero n di elementi,(in questo caso 10)basta che passi come argomento alla funzione di stampa solo l'array o il puntatore ad esesso,come del resto ai fatto tu.Originariamente inviato da Lucked
esatto anx..cercavo proprio di non passare alla funzione un elem aggiuntivo. Considera cmq che il mio array ha 10 elementi e quindi non varia la lunghezza. che ne pensi? non si puo?
Puoi anche fare cosi': (equivalente al tuo,solo con passaggio x puntatore...)
codice:void stampa(int *a){ /* operazioni */ }
ciao![]()
![]()
![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...