Asigne un puntero a una estructura que sea miembro de una estructura del mismo tipo a otro puntero a una estructura del mismo tipo
Esta pregunta suena muy confusa incluso para mí, y puede parecer obvia o ya respondida, pero he buscado mucho y, aunque encontré cosas interesantes, no encontré una respuesta exacta para mi pregunta. Aquí hay algunosC código que mostrará mucho mejor mi duda:
typedef struct Node_struct {
char keyLine[100];
int occurrences;
struct Node* leftChild;
struct Node* rightChild;
struct Node* parent;
} Node;
typedef struct Tree_struct {
Node* root;
} Tree;
int insertNode(Tree* myTree, Node* newNode) {
...
Node* currentNode = myTree->root;
...
if (caseSenCmpString(newNode->keyLine, currentNode->keyLine) == -1) {
currentNode = (Node*)currentNode->leftChild;
}
...
}
¿Es correcto este código? Ya quecurrentNode
es de tipoNode*
ycurrentNode->leftChild
es de tipostruct Node*
, Tuve que lanzar(Node*)currentNode->leftChild
para que pueda asignarse acurrentNode
. Pero no estoy seguro de si esto es correcto, necesario o si hay una mejor manera de hacer lo mismo.
e manera similar, también tengo esto:
Node* coverNode = NULL;
...
coverNode->leftChild = (struct Node*)newNode;