Cuestión : Tener apuro el trabajar con los indicadores en programa de C

Estoy trabajando en un programa donde necesito pasar nodos del punto A para señalar B para señalar la C.  Hay 3 tipos de los nodos (A, B, C).  En la función particular demuestro abajo, yo estoy intentando pasar el nodo B al nodo B de la localización C. debo contener un nodo A (por lo tanto la razón se pasa adentro) junto con una cierta otra pieza principal de information.

The que estoy luchando con soy cómo tener acceso a los datos para la estructura a la cual los indicadores están señalando.  el

I también inseguro del papel “unión” juega en la estructura de NODE_TYPE.  ¿Me significa puede tener un A_TYPE o un B_TYPE o un C_TYPE? el programa simplificado/>A del


Any sería grandemente appreciated.
class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
class= " del id= " codeSnippet815893 del
 ***** en ****** principal del programa/

….

BtoC (*node_from_a de NODE_TYPE)
{
   *node_to_c de NODE_TYPE; node_alloc del uso de/* () para crear esto * 
   /* ESTO ES DONDE NECESITO AYUDA *
   node_to_c = node_alloc ();
   /* crean el b_node: el node_alloc del uso () - ESTO ES DONDE NECESITO AYUDA *
   b_node = node_alloc (); ¿//CORRECT?????
   Terraplén de/* los campos del b_node - ÉSTE ES DONDE NECESITO AYUDA *
   b_node->u->a_node = &node_from_a; ¿//CORRECT?????
   b_node->type = TYPE_B_NODE; ¿//CORRECT?????

   node_to_c->u->b_node = &b_node; ¿//????
   node_to_c->type = TYPE_C_NODE; ¿//????
   
   /* envían a c *
   send_node_to_c (node_to_c);
   
   vuelta 0;
}

….

/***** En ****** del archivo de .h/

….

unidad de datos de/* entre A y B *
struct del typedef {
     snode de la internacional;                    dirección del nodo de la fuente de/* *
     dnode de la internacional;                    dirección del nodo de destinación de/* *
     datos del carbón de leña [DATASIZE];           mensaje de/* *
} A_TYPE;

unidad de datos de/* entre B y C *
struct del typedef {
     curr_node de la internacional;   dirección de/* de este nodo *
     next_node de la internacional;   dirección de/* del nodo siguiente *
     A_node de A_TYPE;
     error boleano del enum; /* SÍ o NO *
} B_TYPE;

unidad de datos de/* entre las capas de C *
struct del typedef {
     tipo de la internacional;
     B_node de B_TYPE;
} C_TYPE;

Los valores de/* para el tipo colocan en NODE_TYPE *
#define TYPE_A_NODE 0
#define TYPE_B_NODE 1
#define TYPE_C_NODE 2

struct del typedef {
     unión {
	  A_node de A_TYPE;
	  B_node de B_TYPE;
	  C_node de C_TYPE;
     } u; 

     tipo de la internacional;    /* uno de TYPE_A_NODE, TYPE_B_NODE, TYPE_C_NODE *
} NODE_TYPE;

node_init de la internacional (); /* inicializan la piscina de nodos. Vueltas 0 para la falta. *
*node_alloc de NODE_TYPE (); /* asigna un nodo y vuelve un indicador *

….
class= del

Respuesta : Tener apuro el trabajar con los indicadores en programa de C

si usted quiere copiar. eso está creando un duplicado, entonces

Si son indicadores:
*node_to_c->u->b_node->a_node = *node_from_a->u->a_node;

si usted quisiera que señalaran al mismo nodo
node_to_c->u->b_node->a_node = node_from_a->u->a_node;


Si no son indicadores, después (creará nodo duplicado)
node_to_c->u.b_node.a_node =node_from_a.u.a_node;
Otras soluciones  
 
programming4us programming4us