El vie, 21 abr 2000, Francisco Jos� Avila Bermejo escribi�:
> Estoy haciendo un programa chorra para redireccionar correo y me he encontrado
> con una curiosidad del gethostbyname(). El caso es que siempre devuelve un
> puntero a la misma direcci�n, por lo que en dos llamada sucesivas a la funci�n
> para resolver dos nombre, pues el segundo pisa al primero. Por lo visto no 
> hace
> un malloc() para reservar memoria o yo qu� s�:

�Es esta la soluci�n al problema?

#include <stdio.h> 
#include <stdlib.h>
#include <netdb.h>

int main(int argc, char *argv[]) {
  struct hostent *a, *b, *c, *h;
  
  printf("a: %p, b: %p, c:%p\n", a, b, c);
  
  h = gethostbyname("antares");
  a = malloc(sizeof(h));
  memcpy(a, h, sizeof(h));
  h = gethostbyname("javi");
  b = malloc(sizeof(h));
  memcpy(b, h, sizeof(h));
  h = gethostbyname("apolo");
  c = malloc(sizeof(h));
  memcpy(c, h, sizeof(h));

  printf("a: %p, b: %p, c:%p\n", a, b, c);

  return 0;
}

Me parece algo chapuzas :-P
 
-----------------------------------------------------------------------------

 * Hay miles de Pentiums 75 bajo su Pentium 100. Siga raspando!!.

-------------
                      Registered Linux user number 134.596

 E-mail: [EMAIL PROTECTED]                     Powered by Debian 2.1 slink
-----------------------------------------------------------------------------

Responder a