[Tech] OT domanda di C sui puntatori

Claudio Kutufà claudiok@nexusfi.it
Ven 25 Maggio 2007 11:35:21 CEST


At 11.16 25/05/2007 +0200, you wrote:
>On Fri, 2007-05-25 at 09:56 +0200, Carlo Baffa wrote:
> > On Fri, 25 May 2007, Lorenzo wrote:
> >
> > > ho una piccola questione che non ho ben capito.
> > > Che differenza c'e' tra queste due situazioni?
> > >
> > > main (int argc, char *argv[])
> > > e
> > > main (int argc, char **argv)
> > >
> > Per quello che capisco io di C le due dichiarazioni sono quivalenti per il
> > compilatore, almeno per quelli ANSI, come il gcc. Io vedo una 
> differenza doi
> > comprensibilita', per il programmatore, per me la prima e' piu' chiara.
>
>Quindi potrebbero sortire effetti diversi su diversi compilatori.

Non mi è mai capitato di avere effetti diversi con diversi compilatori... 
tieni conto che l'equivalenza fra le due notazioni è proprio una delle basi 
del C.

>Anche per me la prima e' piu' chiara, che poi e' l'unica che conoscevo
>fino a ieri.

nel caso specifico degli argomenti alla linea di comando anche secondo me è 
più chiara, ma si tratta proprio di gusti. Un mio collega non sopporta la 
s[] e io gliela metto per dispetto... :-)))  scherzo, siamo amiconi.

>In pratica ho un puntatore a puntatore.
>Possono esserci effetti diversi sull'uso/allocazione della memoria?

fra s[] e *s nessuna differenza, la variabile s diventa un puntatore a char
diverso è il discorso se dichiari un array
char s[50] o int s[100]
che automaticamente riservano lo spazio opportuno (oltre a dichiarare s 
come puntatore a carattere)


>--
>Ciao
>lorenzo
>Gpg Key FPR: 8300 A8D8 A494 EDB7 2C7B 8629 549C 0C9C 8FBB 1E9C
>
>_______________________________________________
>FLUG - Discussioni tecniche - tech@firenze.linux.it
>URL: https://lists.firenze.linux.it/mailman/listinfo/tech
>Archivio: http://lists.firenze.linux.it/pipermail/tech
>Ricerca nell'archivio: http://www.firenze.linux.it/search




Maggiori informazioni sulla lista flug-tech