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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


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

Desconectado Desconectado

Mensajes: 14


Ver Perfil
(RESUELTO)
« en: 17 Junio 2015, 20:52 pm »

Estoy haciendo una función, donde te pasan unos registros y tienes que meterlos dentro de una Lista Enlazada. El codigo es el siguiente:

Código:

typedef struct empleados {
    char apellidos[30];
    char nombre[15];
    int  mes;
    //char bufferRelleno[50000];
} tipoEmpleado;

ListaEnlazada RegistrosListaEnlazada(tipoEmpleado * empleados, int numEmpleados, int mesInf, int mesSup)
{
              int i, temp;
              tipoNodoRef indice, nuevo, aBorrar;
              ListaEnlazada lst = NULL;
                
                for(i=0;i<numEmpleados;i++){
                                         if(empleados[i].mes > mesInf && empleados[i].mes < mesSup){
                                                              
                                                               if((nuevo = (tipoNodoRef) malloc(sizeof(tipoNodo))) == NULL){
                                                                               indice = lst;
                                                                               while (indice != NULL){
                                                                                  aBorrar = indice;
                                                                                  indice = indice->sig;
                                                                                  free(aBorrar);
                                                                                  }
                                                                                  lst = NULL;
                                                                                  } else {
                                                              
                                                              
                                                               nuevo->info = empleados[i];
                                                               nuevo->sig = NULL;

                                                               indice = lst;
                                                               if(indice == NULL)
                                                                         lst = nuevo;
                                                                         else{
                                                                              while(indice->sig != NULL)
                                                                                                indice = indice->sig;
                                                                                 indice->sig = nuevo;
                                                                                 }
                                                                                 }    
                                                                                 }        
                                                                            
                                      
                                      
                                       }
                                      
                                    return lst;  
                                       }


No da ningún error aparentemente, pero a la hora de imprimir los miembros de la lista enlazada tengo problemas. Hago lo siguiente, pero da error:

Código:
i=0;
indice = lst;
while(indice->sig != NULL){
                  i++;
                 printf("\nNODO <%d>\n",i);
                 printf("%c",(indice->info).apellidos);
                 printf("%c",(indice->info).nombre);
                 printf("%d",(indice->info).mes);
                
                 indice = indice->sig;

¿Alguien sabría como solucionarlo?


« Última modificación: 21 Junio 2015, 16:32 pm por TheShocker » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Meter registros a una lista enlazada
« Respuesta #1 en: 17 Junio 2015, 23:50 pm »

Dices que da error. ¿Qué error da?


En línea

TheShocker

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Meter registros a una lista enlazada
« Respuesta #2 en: 18 Junio 2015, 00:00 am »

Dices que da error. ¿Qué error da?

Se cierra el programa al ejecutarlo. El error está en la parte de mostrar la lista. Sin eso, el programa funciona bien.
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Meter registros a una lista enlazada
« Respuesta #3 en: 18 Junio 2015, 01:06 am »

A parte del error, que estaría bien que dijeses qué es exactamente, o en qué linea es, ese while es incorrecto. Debería ser un do{}while(); en todo caso. No accedes al último elemento de la lista. Tampoco sé los campos de ListaEnlazada, así que poco tengo que decir.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
resuelto
Programación Visual Basic
usuario oculto 2 2,209 Último mensaje 12 Enero 2009, 00:29 am
por usuario oculto
{Resuelto} [vbs] HTA.. ¬¬ « 1 2 »
Scripting
xassiz_ 10 7,954 Último mensaje 2 Octubre 2009, 21:50 pm
por kevlar
{RESUELTO} ¿Cómo redimensiono un jPanel? {RESUELTO} « 1 2 »
Java
|Miguel| 12 10,620 Último mensaje 13 Febrero 2012, 15:11 pm
por |Miguel|
[RESUELTO] No consigo limpiar un JTable... [RESUELTO]
Java
|Miguel| 2 29,263 Último mensaje 12 Febrero 2018, 09:06 am
por shoni_isra
[Resuelto] C++ + ASM
Programación C/C++
Miseryk 1 2,001 Último mensaje 19 Abril 2012, 05:35 am
por david_BS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines