Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Niber

#11
Hola, estoy intentando hacer un lista enlazada simple, pero me da un error en ejecución cuando lee los datos. No se que he hecho mal. Podriais ayudarme? Gracias  :)
#include <stdio.h>
#include <stdlib.h>
//----ESTRUCTURAS-----
struct contacto{
char nombre[30];
int tlf;
};
struct agenda{
struct contacto datos;
struct agenda *next;
};

// ---FUNCIONES--
//int menu();
void addContacto(struct agenda *pinicio,struct agenda *pultimo);
void mostrarAgenda(struct agenda *pinicio);
// ***************************************************
void main()
{
struct agenda *pinicio,*pultimo;
pinicio=NULL;
pultimo=NULL;
int pos=0;
//for (pos=0;pos<3;pos++)
//{
addContacto(pinicio,pultimo);

//}
mostrarAgenda(pinicio);

}
//----------------------------------
void addContacto(struct agenda *pinicio,struct agenda *pultimo)
{
struct agenda *pnuevo=NULL
//Asignar memoria
pnuevo=(struct agenda *)malloc(sizeof(struct agenda));
if (pnuevo==NULL)
printf("\n No hay memoria");
else
{
printf("\n Nombre: ");
scanf(" %s",pnuevo->datos.nombre);
fflush(stdin);
printf("\n TLF: ");
    scanf("%d",pnuevo->datos.tlf);
fflush(stdin);
pnuevo->next=NULL;

if (pinicio==NULL)//Si lista vacia
{
pinicio=pnuevo;
pultimo=pnuevo;
}
else
{
pultimo->next=pnuevo;
pultimo=pnuevo;
}

}

}
//-----------------------
void mostrarAgenda(struct agenda *pinicio)
{
struct agenda *paux;
paux=pinicio;
do{
if (paux!=NULL)
{
printf("\n %s",paux->datos.nombre);
printf("\n %d",paux->datos.tlf);
paux=paux->next;
}

}while (paux->next!=NULL);
}