PDA

Visualizza la versione completa : [C] Un aiuto sulle liste


Downloader
18-12-2007, 17:38
Studiando le basi delle liste mi sono imbattuto in questa dichiarazione che francamente mi poco chiara:



struct elemento *pun;


Che viene inserito all'intero della seguente creazione della struttura "elemento"



struct elemento {
int inf;
struct elemento *pun;
}


Non riesco a capire cosa c'entri la parola chiave struct davanti alla dichiarazione elemento *pun;.

L'unica spiegazione che mi sono dato che struct in questo caso usato come una sorta di modificatore e non come strumento per la creazione di un nuovo tipo.

E' corretto??
Illuminatemi.



tnx

shodan
18-12-2007, 18:17
L'unica spiegazione che mi sono dato che struct in questo caso usato come una sorta di modificatore e non come strumento per la creazione di un nuovo tipo.

E' esattamente il contrario.

In C++ opzionale. In C se si utilizza una struct obbligatorio specificare che lo sia. Se togli la parola chiave ti da errore.

Downloader
18-12-2007, 18:57
Mi potresti spiegare meglio come funziona sta cosa??
Devo dire di capirci poco, e i libri al momento non mi stanno aiutando.


Grazie

oregon
18-12-2007, 19:47
Ma cosa non ti e' chiaro in dettaglio?

In C con la struct dichiari una struttura ... e con struct elemento * un puntatore a tale struttura ...

Downloader
18-12-2007, 21:40
Originariamente inviato da oregon
Ma cosa non ti e' chiaro in dettaglio?

In C con la struct dichiari una struttura ... e con struct elemento * un puntatore a tale struttura ...

Mah in generale un po' tutto.
Ho iniziato proprio oggi a vedere ste cose e siccome sono nuove sono un po' in confusione oltre che spaesato.
Domani tanto vengono rispiegate le liste, quindi forse avr qualche base in pi.

Al limite chiedo qua sul forum.

Ifrit
19-12-2007, 05:20
Ascolta e abbastanza semplice....

cose e' un puntatore? e' un qualcosa che punta a un elemento di qualunque natura sia, intera, float...o struttura....quinsi se tu dishiari


int *punt;


sai che nella locazione di memoria del puntatore deve risiedere un dato il quale punta a una locazione di memoria di tipo integer....

se tu invece scrivi:


struct giggino *punt;


sai che nella locazione di memoria del puntatore deve risiedere la locazione di memoria della testa di una struttura di tipo giggino....

questo serve per far si che puoi creare un "treno" di strutture collegate attraverso puntatori

Loading