In article <[EMAIL PROTECTED]> you wrote: > If you happen to have a variable (or field or in fact any expression) > of that type (either type "struct x25_address" or type "x25_address"), > then you can take the size of the variable, instead of the size of the > type.
Yes thats a good point, hmm: { struct x25_route_struct rt; struct sockaddr_x25 sx25; ... memset((char *) &rt, 0, sizeof(struct x25_route_struct)); ... /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */ memcpy(&rt.address, &sx25.sx25_addr, sizeof(struct x25_address)); ... The 2.6 headers include: #struct x25_address { # char x25_addr[16]; #}; # #/* # * Linux X.25 Address structure, used for bind, and connect mostly. # */ #struct sockaddr_x25 { # sa_family_t sx25_family; /* Must be AF_X25 */ # struct x25_address sx25_addr; /* X.121 Address */ #}; and the 2.4 headers: #typedef struct { # char x25_addr[16]; #} x25_address; #struct sockaddr_x25 { # sa_family_t sx25_family; /* Must be AF_X25 */ # x25_address sx25_addr; /* X.121 Address */ #}; > memcpy(&rt.address, &sx25.sx25_addr, sizeof sx25.sx25_addr); > This will work with either definition of sx25_address. thanks for your help, will do that (however i prefer the paranteses :) Greetings Bernd -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]