PDA

Visualizza la versione completa : [C] Problema con puntatori a struct


esoni
22-03-2011, 22:50
ragazzi ignorate pure lo scopo di questa struttura e analizzatela come se foste n compilatore:




/** lunghezza massima label -- in caratteri */
#define LLABEL 128
/** lunghezza massima distanza in km -- in caratteri */
#define LKM 32

/** nodo del grafo */
typedef struct node {
/** etichetta informativa (nome citta) */
char* label;

} node_t;


typedef struct graph {
/** array dei nodi */
node_t * node;
/** numero nodi */
unsigned int size;
} graph_t;



supponiamo che ho un puntatore a una variabile graph_t gia opportunatamente allocata e inizializzata.
se voglio sapere la lunghezza dell etichetta label del nodo iesimo, io avevo pensato a una cosa del genere


graph_t* g;
.
.
.
int dim;
dim=strlen(g->(node+i)->label);

mi da errore sulla riga dim=...
expected identifier before '('

č un errore sintattico perche ho provato a sapere la dimensione della 1 nodo con il comando
strlen(g->node->label);
e funziona correttamente, quindi č un errore sull uso delle parentesi e '->'
potete darmi una mano?

YuYevon
23-03-2011, 10:02
Prova cosė:



dim = strlen(((g -> node) + i) -> label);

Loading