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