Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [c] lunghezza array

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [c] lunghezza array

    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?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    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]);
    }

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    si usa cosi??

    for(i=0;i<sizeof(array);i++) printf("%d", array[i]);

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    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.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    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?

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    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.

  8. #8
    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?
    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.

    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...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.