Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/12/2008, 00:30
mireis
 
Fecha de Ingreso: septiembre-2008
Mensajes: 22
Antigüedad: 15 años, 8 meses
Puntos: 0
Principiante. punteros dentro de estructuras

Hola de nuevo!

No entiendo muy bien el uso de los punteros en este ejercicio. (adjunto las funciones que emplean punteros y señalo en rojo mis dudas). Se trata de añadir elementos a una lista de pedidos.

struct pet
{
int numpedido;
pet *next;
} a;

a *b=NULL;
int contador;

//////
void print (){
a* r;
r=b;
while (r!=NULL){
printf("<%d>", r-> numpedido);
r=r->next}
}

//////
void add(){
int c;
a* r;
r=(a*) malloc (sizeof(a));
c=contador++;
r->numpedido=c;
r->next=a;
a=r;
}

/////
void remove(){
a *r;
r=b;
r=b->next;

free(r);
}


Estas funciones están pensadas para ser utilizadas por diferentes hebras (he obviado los mutex). Es por esta razón que no se emplea directamente la estructura pet a? ¿por qué no se usa tampoco el puntero a una estructura "b" sino que utilizo el puntero a una estructura "r"?
¿Por qué define el puntero a estructura "r" en las tres funciones y sin embargo sólo le da un lugar en la memoria (malloc) en la función add()?