Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/09/2006, 12:25
Avatar de El_Metallick
El_Metallick
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 1 mes
Puntos: 16
Ahora si me quedo mas claro gracias master Nivel7... pero ahora me surgio otro problema, la cosa es que tengo que trabajar con listas enlasadas y tengo 3 una auto, una usuario y una arriendo, lo que necesito es hacer solo una funcion que agregue cualqueir tipo de dato a cualquier estructura y si cambio las estructuras no tenga que modificar la funcion crear, trate de hacerle unas modificaciones a tu código y me quedo asi:

Código:
#define INT 1
#define STRING 2

//****************************  Declaración de las estructuras  ****************************

//Se define la estructura Auto
typedef struct Auto {
       int codigo;        //Código del auto
       char *marca;       //Marca del auto
       char *modelo;      //Modelo del auto
       int anho;          //Año del auto
       int n_ejemplares;  //Número de ejemplares del auto
       struct Auto *next;
}Auto;

//Se define la estructura Usuario
typedef struct Usuario {
       char rut[9];       //Rut del Usuario
       char *nombres;     //Nombres del Usiario
       char *apellidos;   //Apellidos del Usuario
       char *direccion;   //Dirección del Usuario
       char *ciudad;      //Ciudad del Usuario
       char *pais;        //País del Usuario
       char telefono[9];  //Teléfono del Usuario
       struct Usuario *next;
}Usuario;

//Se define la estructura Arriendo
typedef struct Arriendo {
       int codigo;         //Código del auto
       char *marca;        //Marca del auto
       char *modelo;       //Modelo del auto
       int anho;           //Año del auto
       char rut[9];        //Rut arrendatario
       char *nombres;      //Nombres arrendatario
       char *apellidos;    //Apellidos Arrendatario
       char fecha[9];      //Fecha en la que se arrendo
       char vence[9];      //Fecha en la que vence el arriendo
       struct Arriendo *next;
}Arriendo;

struct Auto *NuevoAuto;
struct Auto *PrimerAuto;
struct Auto *RecorreAuto;
struct Auto *AnteriorAuto;

struct Usuario *NuevoUsuario;
struct Usuario *PrimerUsuario;
struct Usuario *RecorreUsuario;
struct Usuario *AnteriorUsuario;

struct Arriendo *NuevoArriendo;
struct Arriendo *PrimerArriendo;
struct Arriendo *RecorreArriendo;
struct Arriendo *AnteriorArriendo;

void Crear(int tipo, char* estructura, char* dato, void* valor)
{
     char *nuest;
     char *prest;
     char *reest;
     
     nuest = strcat("Nuevo",estructura);
     prest = strcat("Primer",estructura);
     reest = strcat("Recorre",estructura);
     
     switch(tipo)
     {
         case INT:
             nuest->dato = ((int*)valor);
             break;
         case STRING:
             nuest->dato = (char *)malloc(sizeof(char)*strlen((char*)valor));
             strcpy(nuest->dato,(char*)valor);
             break;
     }
     
     nuest->next = NULL;
     
     if (prest == NULL)
     {
        prest = nuest;
        reest = nuest;
     }
     else
     {
        reest->next = nuest;
     }
     reest = nuest;
}
 


Mi problema es que me dice que dato no pertenece a ninguna estructura ni a ninguna union... te agradeceria si me pudieras dar una idea de como hacerlo.

Saludos y muchisimas gracias por tu valiosa ayuda.
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!