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

 

 


Tema destacado: Curso de javascript por TickTack


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

Desconectado Desconectado

Mensajes: 10


Ver Perfil
error en mi programa con lista dinamica
« en: 2 Enero 2015, 17:10 pm »

Buenas a todos, estoy aprendiendo C/C++. Bueno he llegado un tramo en C++ que me enseña a crear listas dinamicas, pilas y colas. El caso es que he hecho un ejercicio que aparentemente debe estar bien, lo he repasado muchas veces y sigo sin comprender que es lo que falla. Decir tambien que aunque se que pueden haber maneras mejores de hacerlo el ejercicio me pide que utilice exclusivamente lo aqui expuesto. El ejercicio pide que tengo que crear una lista con una funcion en la que se vayan añadiendo mas nodos al final de la lista. El programa realmente es mucho mas extenso ya que hay una funcion que inserta un nodo al principio y no me da ningun problem  pero el depurador saca un error de segmentation fault cuando llega al punto de la funcion "insertar al final", mas concretamente en la linea <while (aux->siguiente != NULL)> que hay en la funcion.

Código:
#include <iostream>
#include <cstdlib>

using namespace std;

struct t_nodo
{
  int dato;
  struct t_nodo *siguiente;
};

void insertar_al_final (struct t_nodo *&p);

int main(void)
{
  struct t_nodo *principio;
  cout << "\n---- INSERTAR AL FINAL ----";
  cin.get();cin.get();
  insertar_al_final(principio);

  return 0;
}

//FUNCION INSERTAR AL FINAL
void insertar_al_final(struct t_nodo *&p)
{
  struct t_nodo *nuevo_nodo;
  struct t_nodo *aux;

  nuevo_nodo = new struct t_nodo;

  cout << "Introduzca el numero:     ";
  cin >> nuevo_nodo->dato;
  nuevo_nodo->siguiente = NULL;

  if (p != NULL)
  {
    aux = p;

    while (aux->siguiente != NULL)    //aqui es donde marca el problema
    {
      aux = aux->siguiente;
    }
    aux->siguiente = nuevo_nodo;
  }
  else
  {
    p = nuevo_nodo;
  }
}



El resultado del depurador esta en esta imagen:
http://postimg.org/image/xlcxnptrn/

Toda ayuda es bienvenida. Muchas gracias ^^


En línea

:Luigi

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: error en mi programa con lista dinamica
« Respuesta #1 en: 2 Enero 2015, 20:58 pm »

Fiin del misterio.

El problema era que en main la estructura "struct t_nodo *principio;" no estaba iniciada. Solo he tenido que cambiarr esa linea por "struct t_nodo *principio = NULL;" y caso resuelto.

Gracias a todos los que habeis intentado ayudarme y a los que habeis ayudado tambien :D


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Lista Dinamica en Java
Java
ALEJO007 1 2,606 Último mensaje 14 Enero 2005, 04:41 am
por Ragnarok
lista dinamica
Java
brian_e 8 13,462 Último mensaje 6 Mayo 2009, 02:15 am
por thurgrim
lista con matriz dinamica
Programación C/C++
L·Storm! 2 4,080 Último mensaje 3 Agosto 2011, 03:03 am
por L·Storm!
[C] Lista dinámica de funciones en C (emulando los delegados de .NET)
Programación C/C++
MAFUS 2 1,778 Último mensaje 21 Diciembre 2015, 02:08 am
por MAFUS
[Resuelto] select2 cambiar valor de lista dinamica con jquery
Desarrollo Web
gAb1 2 5,348 Último mensaje 23 Abril 2016, 03:03 am
por gAb1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines