Pergunta : Tendo o problema trabalhar com os ponteiros no programa de C

Eu estou trabalhando em um programa onde eu precise de passar nós do ponto A para apontar B para apontar o C.  Há 3 tipos dos nós (A, B, C).  Na função particular eu mostro abaixo, mim estou tentando passar o nó B ao nó B da posição C. devo conter um nó A (daqui a razão é passado dentro) junto com alguma outra peça que principal de information.

The eu me estou esforçando com sou como alcançar elemento de dados para a estrutura a que os ponteiros estão apontando.  o

I am igualmente incerto do papel “união” joga na estrutura de NODE_TYPE.  Significa-me pode ter um A_TYPE ou um B_TYPE ou um C_TYPE? o programa simplificado/>A do


Any seria extremamente appreciated.
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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= " do id= " codeSnippet815893 do
 ***** no ****** principal do programa/

….

BtoC (*node_from_a de NODE_TYPE)
{
   *node_to_c de NODE_TYPE; node_alloc do uso de/* () para criar isto * 
   /* ISTO É ONDE EU PRECISO A AJUDA *
   node_to_c = node_alloc ();
   /* criam o b_node: o node_alloc do uso () - ISTO É ONDE EU PRECISO A AJUDA *
   b_node = node_alloc (); //CORRECT?????
   Suficiência de/* os campos do b_node - ESTE É ONDE EU PRECISO A AJUDA *
   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; //????
   
   /* emitem a c *
   send_node_to_c (node_to_c);
   
   retorno 0;
}

….

/***** No ****** da lima de .h/

….

unidade de dados de/* entre A e B *
struct do typedef {
     snode do int;                    endereço do nó da fonte de/* *
     dnode do int;                    endereço do nó de destino de/* *
     dados do carvão animal [DATASIZE];           mensagem de/* *
} A_TYPE;

unidade de dados de/* entre B e C *
struct do typedef {
     curr_node do int;   endereço de/* deste nó *
     next_node do int;   endereço de/* do nó seguinte *
     A_node de A_TYPE;
     erro bôoleano do enum; /* SIM ou NO. *
} B_TYPE;

unidade de dados de/* entre camadas de C *
struct do typedef {
     tipo do int;
     B_node de B_TYPE;
} C_TYPE;

Os valores de/* para o tipo colocam em NODE_TYPE *
#define TYPE_A_NODE 0
#define TYPE_B_NODE 1
#define TYPE_C_NODE 2

struct do typedef {
     união {
	  A_node de A_TYPE;
	  B_node de B_TYPE;
	  C_node de C_TYPE;
     } u; 

     tipo do int;    /* um de TYPE_A_NODE, TYPE_B_NODE, TYPE_C_NODE *
} NODE_TYPE;

node_init do int (); /* inicializam a associação dos nós. Retornos 0 para a falha. *
*node_alloc de NODE_TYPE (); /* aloca um nó e retorna um ponteiro *

….
class= do

Resposta : Tendo o problema trabalhar com os ponteiros no programa de C

se você quer copiar. isso está criando uma duplicata, então

Se são ponteiros:
*node_to_c->u->b_node->a_node = *node_from_a->u->a_node;

se você os quer apontar ao mesmo nó
node_to_c->u->b_node->a_node = node_from_a->u->a_node;


Se não são ponteiros, a seguir (criará o nó duplicado)
node_to_c->u.b_node.a_node =node_from_a.u.a_node;
Outras soluções  
 
programming4us programming4us