Pregunta técnica sobre C
¿Cómo copiarias una estructura con esto campos?
struct hostent {
char *h_name; Official name of host.
char **h_aliases; Alias list.
int h_addrtype; Host address type.
int h_length; Length of address.
char **h_addr_list; List of addresses from name server.
}
¿así?
// Reserva de memoria para la estructura
ia->h = new hostent;
// Copiamos el nombre
ia->h->h_name = new char[strlen(tmp->h_name)+1];
strcpy(ia->h->h_name, tmp->h_name);
// Copiamos la lista de alias
ptr = tmp->h_aliases;
ia->h->h_aliases = new char*[16];
while (*tmp->h_aliases) {
*ia->h->h_aliases = new char[strlen(*tmp->h_aliases)+1];
strcpy(*ia->h->h_aliases++, *tmp->h_aliases++);
}
// Copiamos el tipo de dirección
ia->h->h_addrtype = tmp->h_addrtype;
// Copiamos el tamaño de la dirección
ia->h->h_length = tmp->h_length;
// Copiamos la lista de direcciones
ia->h->h_addr_list = new char*[1];
ia->h->h_addr_list[0] = new char[strlen(tmp->h_addr_list[0])+1];
strcpy(ia->h->h_addr_list[0], tmp->h_addr_list[0]);
¿No habría una forma más fácil?
--
-----------------------------------------------------------------------------
* Recursivo: Adj, vease recursivo.
-------------
Registered Linux user number 134.596
E-mail: monkiki@teleline.es Powered by Debian 2.1 slink
-----------------------------------------------------------------------------
Reply to: