elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  C -Error en lista enlazada simple
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C -Error en lista enlazada simple  (Leído 1,458 veces)
Niber

Desconectado Desconectado

Mensajes: 11


Ver Perfil
C -Error en lista enlazada simple
« en: 21 Mayo 2019, 13:50 pm »

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  :)
Código:
#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);
}


En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: C -Error en lista enlazada simple
« Respuesta #1 en: 21 Mayo 2019, 15:31 pm »

Te sugiero esto:
- indica cual es el error que te da. Decir que "te da un error" no ayuda a ayudarte.
- En C, si quieres modificar una variable dentro de una funcion, tienes que pasar un puntero a esa variable y desreferenciar ese puntero al modificar el valor. Si no lo haces, y solo pasas la variable, estas modificando una copia.
- si lo que quieres modificar es un puntero, tienes que pasar la direccion de memoria de ese puntero y recibirla usando un puntero a puntero. Cuando corresponda modificarlo, desreferenciar el puntero a puntero tal como se hace en general (lo dicho en el punto anterior).


« Última modificación: 21 Mayo 2019, 18:13 pm por CalgaryCorpus » En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Niber

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: C -Error en lista enlazada simple
« Respuesta #2 en: 22 Mayo 2019, 00:04 am »

Efectivamente estaba haciendo mal, el paso de referencia de un puntero (entre otras cosas) Después de darle bastantes vueltas he conseguido que funcione. Gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda lista simple enlazada C
Programación C/C++
netca 3 3,838 Último mensaje 16 Agosto 2012, 00:06 am
por twins
[Resuelto]Duda lista simple enlazada en C
Programación C/C++
Zelandya 4 3,494 Último mensaje 30 Agosto 2012, 05:41 am
por Zelandya
Insertar un elemento ordenadamente en una lista enlazada simple
Programación C/C++
NathanD 4 26,587 Último mensaje 27 Abril 2013, 14:25 pm
por NathanD
borrar elemento de la lista enlazada simple
Programación C/C++
d91 2 3,273 Último mensaje 9 Junio 2014, 13:44 pm
por d91
Lista enlazada simple – listas ligadas [C]
Programación C/C++
DanielPy 3 2,827 Último mensaje 9 Junio 2015, 17:38 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines