Título: Lista ligadas se crashea my programa
Publicado por: aurquiel en 2 Julio 2018, 14:33 pm
Hola buenos dias estoy intentando implementar una lista en c, mi progrma compila pero se crashea y no consigo el error, si me pudieran dar una mano por favor, arriba dejo mi codigo, gracias.#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct tNodo{ int valor; struct tNodo *siguiente; }Nodo; typedef struct tLista{ int tamanio; struct Nodo *primer; struct Nodo *ultimo; }listaLigada; Nodo *nuevoNodo(int pvalor) { Nodo * nodo = (Nodo *)malloc(sizeof(Nodo )); nodo->valor = pvalor; nodo->siguiente = NULL; return nodo; } listaLigada *nuevaListaLigada(){ listaLigada *ll = (listaLigada *)malloc(sizeof(listaLigada )); ll->tamanio = 0; ll->primer = NULL; ll->ultimo = NULL; return ll; } //operaciones CRUD void add(listaLigada *ll, Nodo *pNodo){ if(ll->primer == NULL) ll->primer = (struct Nodo*)pNodo; else ll->ultimo = (struct Nodo*)pNodo; ll->ultimo = (struct Nodo*)pNodo; ll->tamanio++; } Nodo *read(listaLigada *ll, size_t index){ if(ll->tamanio){ Nodo* exploradorLista = (Nodo*)(ll->primer); int i = 0; while(i++ <index) exploradorLista = (Nodo*)(exploradorLista->siguiente); return exploradorLista; } return NULL; } void update(listaLigada *ll, size_t index, int pValor){ if(ll->tamanio){ Nodo* exploradorLista = (Nodo*)(ll->primer); int i = 0; while(i++ <index) exploradorLista = (Nodo*)(exploradorLista->siguiente); exploradorLista->valor = pValor; } } int main() { listaLigada *miLista = nuevaListaLigada(); Nodo * a = nuevoNodo(1); Nodo * b = nuevoNodo(2); Nodo * c = nuevoNodo(3); add(miLista, a); add(miLista, b); add(miLista, c); Nodo* re = read(miLista,1); return 0; }
Creo que el problema esta en esta instrucction en la funcion read()b] exploradorLista = (Nodo*)(exploradorLista->siguiente); Mi programa se crashea justo alli
|