Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Kreator
    Registrato dal
    May 2002
    Messaggi
    278

    [c++] Passaggio di un array a funzione

    Ciao raga.

    La domanda penso che sia alquanto stupida pero' non ho capito una cosa.
    E' possibile secondo voi passare un array di caratteri per riferimento ad una funzione ?


  2. #2

    Re: [c++] Passaggio di un array a funzione

    La domanda penso che sia alquanto stupida pero' non ho capito una cosa.
    E' possibile secondo voi passare un array di caratteri per riferimento ad una funzione ?
    In realtà è la prassi più comune. In C puro più che per passare una variabile per riferimento si passa per valore un puntatore a tale variabile. In C++ esiste anche la sintassi che permette di passare una variabile per riferimento (usando &) ma il risultato è lo stesso.

    Ad ogni modo, quando si prende in considerazione un array (ad esempio vett[]) di fatto il "nome" dell'array (in questo caso vett) è il puntatore al suo primo carattere. Quando dunque tu dichiari una funzione
    codice:
        int foo(char *aVett);
    di fatto puoi chiamarla pasandole un array
    codice:
        char pippo[20];
        ...
        foo(pippo);
    Infatti pippo è il puntatore al primo carattere di pippo[20].
    Ovviamente la funzione chiamata deve sapere quant'è lungo tale array, oppure l'array di caratteri deve avere un terminatore corretto (ad esempio 0x00 che è il "terminatore ufficiale" delle stringhe in c/c++), oppure si deve fornire un qualche modo per aiutare la funzione, ad esempio:
    codice:
        int foo (char *aVett; int aNCars);
    e poi chiamarla con:
    codice:
        foo(pippo,20);
    HTH
    Che il pelo cresca sempre fluente sui vostri piedi
    Bilbo
    Visita il sito della Società Tolkieniana Italiana

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.