Novato dudas Parametros

tomynoway
16 de Octubre del 2009
Hola!! estoy haciendo un tp para Sistemas operativos con Sockets , mi problema es que no comprendo como se pasan los parametros aqui

bind(socket_desc,(struct sockaddr *)&address,sizeof(address));

struct sockaddr * //Por que el * va al final? no tendria que ir al principio si es un puntero a la estructura? y luego con el & hace una concatenacion no?, luego si comprendo que le pasa el tama帽o del paquete, pero sinceramente la forma que pasa la estructura no la comprendo, alguien me podria ayudar?

Muchisimas Gracias a todos!!!
Tomas



israel navarrete
16 de Octubre del 2009
tienes que leer mas acerca de apuntadores por que & es un operador de apuntadores creo que se esta haciendo un casting

te recomiendo que consultes las paginas de man bind

Paco
16 de Octubre del 2009
En struct sockaddr * ha puesto el * al final porque, en su declaraci贸n, se hizo

struct sockaddr { /* elementos de la estructura */ };

por lo tanto, el tipo es struct sockaddr.

Con & no est谩 haciendo una concatenaci贸n. El operador & como prefijo (tal como est谩 aqu铆) indica "direcci贸n de", no tiene nada que ver con concatenaci贸n. La descripci贸n completa del primer par谩metro ser铆a algo as铆 como

"Pasa la direcci贸n de la variable address como puntero a una estructura sockaddr".

Como est谩 indicado en la primera respuesta, se trata de un cast.

Repasa bien el tema de manejo de punteros y direcciones, es vital para programar en C.

Saludos,

PACO