No ... forse c'e' qualcosa che ti e' sfuggito perche' la struttura non si puo' chiamare node come il nuovo tipo di dato ...Originariamente inviato da jacopos81
la struttura è cosi definita dalle specifiche che ci da il prof.. forse lo fa per complicarci la vita..
per quanto riguarda la compilazione uso il classico gcc di linux..
Cioe'
struct node ...
e
typedef struct node *node
non e' compilabile ...!
Allora ... se node e' un "puntatore" alla struttura, allora stai passando il puntatore al puntatore e quindi l'allocazione interna alla funzione puo' andare ...non posso allocarla esternamente, perche vorrebbe dire allocarla nel main.. e anche il main è fornito dal prof e non c'è l'allocazione..
il prof nel main fa semplicemente:
node n;
int err = new_text_node(&n,"nodo"...... bla bla
Se node e' invece, una struttura allocata staticamente, allora non esiste motivo di allocarla ...
Io penso che l'ipotesi corretta sia la prima, ma allora la dichiarazione della struttura e del tipo dati deve essere qualcosa come questa ...
struct _node ...
typedef struct _node *node;
In questo caso, tutto potrebbe funzionare ...

Rispondi quotando