Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/12/2008, 15:57
PCKing
 
Fecha de Ingreso: febrero-2006
Mensajes: 49
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: Principiante. punteros dentro de estructuras

Buenasss

Si, definitivamente la codificación intenta simular una lista enlazada de elementos, donde la key de cada uno de ellos en este caso es un entero.

Una pregunta te hago al pasar, esto compila y ejecuta bien??

Vamos con tus dudas. En print r = r->next lo que significa es que esta pasando al siguiente elemento de la lista, simplemente eso. utiliza r en lugra de b ya que b es global y lo usan todas las funciones, usando una variable local como copia no pierde el valor original de b ya que se necesitará despues.

El malloc se hace solo en add porque en la funcion add quiero añadir un nuevo bloque a la lista, entonces debo reservarle memoria. El puntero r se usa para iterar en la lista cosa que se necesita en los 3.

Despues donde marcaste en rojo creo que hay algunos errores, te tiro mi idea, a ver si funciona...

Código HTML:
//////
void add(){
int c;
a* r;
r=(a*) malloc (sizeof(a));
c=contador++;
r->numpedido=c;
r->next = b;
b = r;             // Agrego el elemento al inicio
}

/////
void remove(){
a *r;
r=b;
b=b->next;      // b pasa al siguiente
free(r);
}
Se entienden los cambios??

Cualquier cosa preguntame
Saludos