Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Mi primera Lista en c

Estas en el tema de Mi primera Lista en c en el foro de C/C++ en Foros del Web. Hola gente, miren estoy intentado crear mi primera lista, lo que ando un poco flojo. enters.h @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C: Ver original #include <stdio.h> #include ...
  #1 (permalink)  
Antiguo 19/01/2012, 05:20
 
Fecha de Ingreso: septiembre-2011
Mensajes: 87
Antigüedad: 12 años, 7 meses
Puntos: 6
Mi primera Lista en c

Hola gente, miren estoy intentado crear mi primera lista, lo que ando un poco flojo.

enters.h
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <malloc.h>
  5.  
  6. struct nEnters{
  7.     int info;
  8.     struct nEnters *seg;
  9. };
  10.  
  11. void afegirInici(struct nEnters *pinici, int num);

enters.c
Código C:
Ver original
  1. #include "enters.h"
  2.  
  3. void afegirInici(struct nEnters *pinici, int num){
  4.  
  5.     struct nEnters aux=NULL;
  6.  
  7.     aux=(struct nEnters *)malloc(sizeof(struct nEnters));
  8.     if(aux==NULL) return 1;
  9.     aux->info=num;
  10.     aux->seg=NULL;
  11.     pinici=aux;
  12.    return 0;
  13. }

programa.c
Código C:
Ver original
  1. #include "enters.h"
  2.  
  3. void main(){
  4.  
  5.     struct nEnters p;
  6.     int num, res;
  7.  
  8.    p=NULL;
  9.     num=4;
  10.  
  11.    res= afegirInici(&p,num);
  12. }

Primero que me dice estructura ilegal al poner el p a NULL. Y luego que no llamo bien la funcion añadirInicio. Creo que lo tengo bien, paso por referencia la structura para cambiarle el puntero, no?

Necesito algo de ayuda ^^.


saludos.
  #2 (permalink)  
Antiguo 19/01/2012, 10:18
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Mi primera Lista en c

Hola joanan46! los codigos estan bien solo que tenes problemas de conceptos. Las listas, en tu caso una lista enlazada simple, se realizan con punteros.
Cuando vos declaras (en el archivo enters.c) struct nEnters aux ya le estas asignando a aux un tamaño fijo del tipo nEnters y luego no podes hacer un malloc para aux, para poder hacer eso aux debe ser un puntero...
En la linea 5 de los archivos enters.c y programa.c, aux y p deberian ser punteros
Código C:
Ver original
  1. struct nEnters *p = NULL;
  2. struct nEnters * aux=NULL;
Sino me equivoco solo a variables de tipo puntero le podes asignar a NULL, es por eso q te da un error en p=NULL. Otra error es asignarle a res la funcion afegirInici, ya que la funcion retorna un void

Espero haber ayudado algo, el tema de listas es dificil a mi me costo mucho aprenderlo pero con practica todo sale

Saludos

Etiquetas: funcion, lista, primera, programa, struct
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:10.