Hola a todos, miren tengo la siguiente clase:
Tiene un vector de estructuras como se puede observar. Claro, ¿cómo hago para reservar memoria dinamica si tiene un vector que desconozco cuanto puede llegar a valer?
Declaración de un puntero de tipo clase lista_usuarios:
Como se puede observar la paso como parámetro a la función recogiendo_arp.
En esa clase se añadirán estructuras de tipo host a la lista de hosts de lista_usuarios, con su mac e ip, se incrustarán.
El problema es que la lista me debería de salir que tiene 6 hosts y me dice que tiene 0, los valores se pierden.
El problema es que tras llamar a la funcion y añadir host a el vector de lista_host de lista_usuarios, me dice que el vector lista_host tiene 0 elementos, cuando he podido comprobar que se añaden hasta 6.
Saludos.
Código (cpp) [Seleccionar]
struct host
{
u_char ip[4];
u_char mac[6];
};
class lista_usuarios
{
public:
vector<host> usuarios;
void insertar_host(u_char* ip, u_char* mac);
};
Tiene un vector de estructuras como se puede observar. Claro, ¿cómo hago para reservar memoria dinamica si tiene un vector que desconozco cuanto puede llegar a valer?
Declaración de un puntero de tipo clase lista_usuarios:
Código (cpp) [Seleccionar]
lista_usuarios* buscar_usuarios()
{
lista_usuarios *lista_host = nullptr;
printf("ANTES: %d\n", lista_host->usuarios.size());
auto envio_arp = async(enviando_arp, capturador, ip_cliente, mac_adaptador, ip_gateway);
auto recojo_arp = async(recogiendo_arp, capturador, *lista_host);
envio_arp.get();
recojo_arp.get();
printf("\nDESPUES: %d\n", lista_host->usuarios.size());
return lista_host;
Como se puede observar la paso como parámetro a la función recogiendo_arp.
En esa clase se añadirán estructuras de tipo host a la lista de hosts de lista_usuarios, con su mac e ip, se incrustarán.
El problema es que la lista me debería de salir que tiene 6 hosts y me dice que tiene 0, los valores se pierden.
Código (cpp) [Seleccionar]
void recogiendo_arp(pcap_t *capturador, lista_usuarios lista)
{lista.insertar_host(ip, mac);}
El problema es que tras llamar a la funcion y añadir host a el vector de lista_host de lista_usuarios, me dice que el vector lista_host tiene 0 elementos, cuando he podido comprobar que se añaden hasta 6.
Saludos.