PDA

Visualizza la versione completa : [c++] Passaggio di un array a funzione


Kreator
28-01-2005, 18:35
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 ?

:dh: :dh: :dh: :dh:

Piero Salandin
28-01-2005, 18:47
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

int foo(char *aVett);

di fatto puoi chiamarla pasandole un array

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:

int foo (char *aVett; int aNCars);

e poi chiamarla con:

foo(pippo,20);


HTH

Loading