neanche a me pare una buona idea... va a capire... :master:codice:In ogni caso non mi sembra una buona idea chiamare la struttura e il tipo di dato "puntatore alla struttura" nella stessa maniera ...
neanche a me pare una buona idea... va a capire... :master:codice:In ogni caso non mi sembra una buona idea chiamare la struttura e il tipo di dato "puntatore alla struttura" nella stessa maniera ...
A meno che il nome della struttura non fosse maiuscolo e quello del dato minuscolo (o viceversa ...) ...
In ogni caso, se assumi la typedef che ti ho indicato (con la struttura anonima) penso tu possa risolvere il problema ...
no i due nomi "node" sono proprio uguali..
ti ringrazio per il suggerimento ma non posso fare in quel modo, perche non posso cambiare le specifiche. Altrimenti mi salta tutto il progetto..
Se la struttura è dichiarata in questo modo:Originariamente inviato da jacopos81
se metto n = t e non *n = t non mi funziona. Mi va in segmentation default. Riporto la mia versione funzionante della funzione (di cui non posso cambiare il prototipo):
codice:int new_text_node(node *n, char *text, int x) { node t = malloc(sizeof(struct node)); t->id = x; t->name = (char *)malloc(sizeof(char) * strlen(text) + 1); strcpy(t->name,text); t->type = TEXT_NODE; int a = new_list(&t->children); *n = t; return 0; }
typedef struct node {...};
funziona...
Ma data l'ambiguità delle tue consegne...
Experience is what you get when you don’t get what you want
non è dichiarata cosi..Originariamente inviato da Xaratroom
Se la struttura è dichiarata in questo modo:
typedef struct node {...};
funziona...
Ma data l'ambiguità delle tue consegne...
ma struct node..
e poi col typedef struct node *node..
ragazzi non è colpa mia!!!![]()
Ti ripeto ... cosi' come te l'hanno data, viene compilata in un progetto C da DevCpp ... (in maniera sbagliata, secondo me ...). Forse il tuo professore l'ha provato in questo modo ...
Tranquillo...Originariamente inviato da jacopos81
ragazzi non è colpa mia!!!![]()
E' solo che in questo modo, personalmente, non ho idea di cosa fare, date le consegne del tuo prof...
Experience is what you get when you don’t get what you want
Scusate, prendetemi pure per un'idiota ma c'è una cosa che non capisco..Perchè viene creato t, un tipo di dato node e non si lavora direttamente su *n?
C'è qualcosa che mi sfugge... :master:
perche *n quando viene passato alla funzione è solo un puntatore.. l'oggetto vero e proprio di tipo node va creato ancora.. e lo si crea dentro alla funzione..
non potrei fare:
Bho io ho fatto così e sembrerebbe fungere.Codice PHP:
*n = malloc(sizeof(struct nodo));
(*n)->type = TEXT_NODE;
ecc.
Com'è più corretto?
Ora mi sorge un dubbio: ma n è un ptr a node, che è il ptr alla struct node, giusto?
Non è che per questioni di ambiguità come qualcuno ha notato, n è un ptr alla struct node??