[C con Clase] error de estructura a una estrucura igual :S

Steven Davidson steven en conclase.net
Dom Jun 17 23:15:20 CEST 2007


Hola Rodrigo,

El pasado 2007-06-17 20:19:02, Rodrigo Lopez escribió:

RL> el programa es mas largo , copio la parte relevante al error

[CORTE]

RL> los dos warnings son generados por las dos respectivas
RL> indice->comienzo=ptrfichas;
RL> con el siguiente mensaje
RL> C:\Documents and Settings\JaMaikito\Escritorio\tpprogramacion.c(30) : 
RL> warning C4133: '=' : incompatible types - from 'struct snodoprincipal *' to 
RL> 'struct snodoprincial *'
RL> no entiendo , que tienen de incompatibles , se trata de estructuras iguales

Me temo que no son iguales. Si te fijas, el error es tipográfico: 'snodoprincipal' y 'snodoprincial'.

Defines la estructura 'snodoindex' de la siguiente forma:

typedef struct snodoindex
{
  char letra;
  struct snodoprincial *comienzo;  // Aquí está el error
  struct snodoindex *sig;
} tnodoindex; 

Deberías escribir:

typedef struct snodoindex
{
  char letra;
  struct snodoprincipal *comienzo;  // Ahora es correcto.
  struct snodoindex *sig;
} tnodoindex; 


Por cierto, sugiero hacer el cásting de 'void *' al puntero que necesites al usar 'malloc()'. Esto es,

indice = (tpuntero) malloc( sizeof(tnodoindex) );
...
ptrfichas = (tpunterofichas) malloc(sizeof( tnodoprincipal) );
...


Espero haber aclarado la duda.

Steven


Más información sobre la lista de distribución Cconclase