Programacion en C

30/01/2004 - 11:18 por AsEr_7 | Informe spam
Hola,
lo primero gracias a Felipe Arcos, por responderme, pero
no he conseguido hacerlo.

El problema era un error, que decia que habia un
especificador que no estaba definido.

Haber si podéis ayudarme. Gracias

Aquí está el código:

//////////////////////////////////////////////////////////
////////////
////// INCLUDES DEL
PROGRAMA ///////////
//////////////////////////////////////////////////////////
////////////

#include <stdio.h>
#include <conio.h>
#include <malloc.h>

//////////////////////////////////////////////////////////
////////////
//////
TYPEDEF
//////////
//////////////////////////////////////////////////////////
////////////


typedef struct nodo * PUNT_NODO;

typedef struct
{
char nombre [20];
short edad;
}FICHA;

typedef struct
{
FICHA info;
PUNT_NODO enlace;
}NODO;

//////////////////////////////////////////////////////////
////////////
////// PROTOTIPOS DE FUNCIONES
//////////
//////////////////////////////////////////////////////////
////////////

FICHA pide_datos (void);
// Funcion de Salida
PUNT_NODO crea_nodo (FICHA elemento);


/*********************************************************
************************/
////////// FUNCION
MAIN
///////////////
/*********************************************************
************************/

void main (void)
{
FICHA var1, elemento;
PUNT_NODO cabeza;

var1 = crea_nodo (elemento);


printf ("%s", var1.nombre);
printf ("%hd", var1.edad);
getch ();

}

/*********************************************************
************************/
///////// RESTO DE
FUNCIONES
///////////////
/*********************************************************
************************/

FICHA pide_datos (void)
{
FICHA nuevo;

printf ("Nombre: ");
fflush (stdin);
gets (nuevo.nombre);
printf ("Edad: ");
scanf ("%hd", &nuevo.edad);

return (nuevo);

}

/*******************************************/

PUNT_NODO crea_nodo (FICHA elemento)
{
PUNT_NODO nuevo;

nuevo = (PUNT_NODO)malloc(sizeof(NODO));

elemento = pide_datos();

nuevo -> info = elemento;
nuevo -> enlace = (PUNT_NODO) NULL;

return (nuevo);

}
 

Leer las respuestas

#1 Felipe Arcos Velez
30/01/2004 - 16:20 | Informe spam
Hola,

La verdad, preferi reescribir un poquito tu codigo porque me confundio lo
del: typedef struct nodo *PUNT_NODO;

Fijate que la linea:
var1 = crea_nodo (elemento);

Trata de asignar el NODO que devuelve crea_nodo a var1, pero var1 es de tipo
FICHA, deberia quedar asi:

var1 = crea_nodo (elemento)->info;


entoces queda asi :

typedef struct

{

char nombre [20];

short edad;

}FICHA;

struct NODO

{

FICHA info;

NODO *enlace;

};

FICHA pide_datos (void);

NODO* crea_nodo (FICHA elemento);

int _tmain()

{

FICHA var1, elemento;

NODO* cabeza;

var1 = crea_nodo (elemento)->info;

printf ("%s", var1.nombre);

printf ("%hd", var1.edad);

getch ();

return 0;

}

FICHA pide_datos (void)

{

FICHA nuevo;

printf ("Nombre: ");

fflush (stdin);

gets (nuevo.nombre);

printf ("Edad: ");

scanf ("%hd", &nuevo.edad);

return (nuevo);

}



NODO* crea_nodo (FICHA elemento)

{

NODO* nuevo;

nuevo = (NODO*)malloc(sizeof(NODO));

elemento = pide_datos();

nuevo -> info = elemento;

nuevo -> enlace = (NODO*) NULL;

return (nuevo);

}



"AsEr_7" wrote in message
news:74fe01c3e71a$78cd6b00$
Hola,
lo primero gracias a Felipe Arcos, por responderme, pero
no he conseguido hacerlo.

El problema era un error, que decia que habia un
especificador que no estaba definido.

Haber si podéis ayudarme. Gracias

Aquí está el código:

//////////////////////////////////////////////////////////
////////////
////// INCLUDES DEL
PROGRAMA ///////////
//////////////////////////////////////////////////////////
////////////

#include <stdio.h>
#include <conio.h>
#include <malloc.h>

//////////////////////////////////////////////////////////
////////////
//////
TYPEDEF
//////////
//////////////////////////////////////////////////////////
////////////


typedef struct nodo * PUNT_NODO;

typedef struct
{
char nombre [20];
short edad;
}FICHA;

typedef struct
{
FICHA info;
PUNT_NODO enlace;
}NODO;

//////////////////////////////////////////////////////////
////////////
////// PROTOTIPOS DE FUNCIONES
//////////
//////////////////////////////////////////////////////////
////////////

FICHA pide_datos (void);
// Funcion de Salida
PUNT_NODO crea_nodo (FICHA elemento);


/*********************************************************
************************/
////////// FUNCION
MAIN
///////////////
/*********************************************************
************************/

void main (void)
{
FICHA var1, elemento;
PUNT_NODO cabeza;

var1 = crea_nodo (elemento);


printf ("%s", var1.nombre);
printf ("%hd", var1.edad);
getch ();

}

/*********************************************************
************************/
///////// RESTO DE
FUNCIONES
///////////////
/*********************************************************
************************/

FICHA pide_datos (void)
{
FICHA nuevo;

printf ("Nombre: ");
fflush (stdin);
gets (nuevo.nombre);
printf ("Edad: ");
scanf ("%hd", &nuevo.edad);

return (nuevo);

}

/*******************************************/

PUNT_NODO crea_nodo (FICHA elemento)
{
PUNT_NODO nuevo;

nuevo = (PUNT_NODO)malloc(sizeof(NODO));

elemento = pide_datos();

nuevo -> info = elemento;
nuevo -> enlace = (PUNT_NODO) NULL;

return (nuevo);

}

Preguntas similares