typedef struct node{...} Node, *NodePtr;

typedef struct node{...} Node, *NodePtr;

de Nicolás Alejandro Rivoir Malán -
Número de respuestas: 3

Hola, estoy estudiando del libro recomendado para el parcial "Advanced Topics in C Core Concepts in Data Structures". Por lo que leí en el capítulo dos los nombres que le siguen a el cierre de paréntesis "}" son las distintas formas de referenciarse a la estructura luego en el programa. Pero no entiendo qué significa que tenga un puntero como dicho argumento. 

Dejo un ejemplo concreto: Capítulo 4, página 77:

typedef struct node{

       int num;

       struct node *next;

}Node, *NodePtr;

Lo que no me queda claro en el papel de *NodePtr. Desde ya, muchas gracias


En respuesta a Nicolás Alejandro Rivoir Malán

Re: typedef struct node{...} Node, *NodePtr;

de Rodrigo Exequiel Nuñez Buslon -

Sino me equivoco, NodePtr es un tipo puntero a algo de tipo struct node. Por ejemplo, podrias hacer estas operaciones:

NodePtr p;

p = new node;

p->num =0;

p->next = NULL;

delete p;

En respuesta a Rodrigo Exequiel Nuñez Buslon

Re: typedef struct node{...} Node, *NodePtr;

de Nicolás Alejandro Rivoir Malán -

Puede ser, por lo que entiendo define la estructura y el puntero a la estructura al mismo tiempo. Gracias 

En respuesta a Nicolás Alejandro Rivoir Malán

Re: typedef struct node{...} Node, *NodePtr;

de Sofia Tito Virgilio Rodriguez -

Hola,

Es correcto lo que dice el compañero.

Equivaldría a definir una vez definido el struct:

typedef struct nodo* NodoPtr;

Que es más parecido a como se trabaja en las tareas.

Además, con esa sentencia ahora a struct node se le puede llamar simplemente Node.

¡Saludos!