Hola a tod@s, en este código
public ref class Adaptador {
public:
...
    property String^ Nombre;   
...
}
________________________________________
Sniffer::Sniffer(void) {
    int i = 0;
    String^ msj;
    pcap_if_t *tRed;
    pcap_if_t *tarjetasRed;
    char errBuffer[PCAP_ERRBUF_SIZE];
    Adaptador^ adp;
    // Obtenemos la lista de tarjetas de red de ordenador donde se ejecute.
    int OK = pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &tarjetasRed, errBuffer);
    if (OK == -1) {
        msj = String::Concat("Error en pcap_findalldevs_ex:", gcnew String(errBuffer));
        MessageBox::Show(msj, "Error en WinPcap", MessageBoxButtons::oK, MessageBoxIcon::Error);
        //fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errBuffer);
    }   
    for(tRed = tarjetasRed; tRed != NULL; tRed = tRed->next) {
        msj = gcnew String(tRed->name);           
adp->Nombre = msj;        if (tRed->description)            
adp->Descripcion = gcnew String(tRed->description);        else
            adp->Descripcion = "Sin descripcion";
//        Object^ obj = safe_cast<Object^>(adp);
        Adaptadores.Add(adp);
        //MessageBox::Show(msj, "Adptador de red", MessageBoxButtons::oK, MessageBoxIcon::Error);
        i++;
    }
    // Se libera la lista de tarjetas de red obtenida anteriormente.
    pcap_freealldevs(tarjetasRed);
} // FIN Sniffer(void)
en las sentencias subrayadas me da el siguiente error de ejecución:
"Excepción no controlada del tipo 'System.NullReferenceException' en Pruebas.exe"
Información adicional:Referencia a objeto no establecido como instacia del objeto"¿¿¿¿¿como puedo revolverlo?????Si cambio el código anterior por este otro (En cursiva están los cambios):
Sniffer::Sniffer(void) {
    int i = 0;
    String^ msj;
    pcap_if_t *tRed;
    pcap_if_t *tarjetasRed;
    char errBuffer[PCAP_ERRBUF_SIZE];    
Adaptador adp;    // Obtenemos la lista de tarjetas de red de ordenador donde se ejecute.
    int OK = pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &tarjetasRed, errBuffer);
    if (OK == -1) {
        msj = String::Concat("Error en pcap_findalldevs_ex:", gcnew String(errBuffer));
        MessageBox::Show(msj, "Error en WinPcap", MessageBoxButtons::oK, MessageBoxIcon::Error);
        //fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errBuffer);
    }   
    for(tRed = tarjetasRed; tRed != NULL; tRed = tRed->next) {
        msj = gcnew String(tRed->name);          
adp.Nombre = msj;        if (tRed->description)          
  adp.Descripcion = gcnew String(tRed->description);        else           
 adp.Descripcion = "Sin descripcion";//        Object^ obj = safe_cast<Object^>(adp);       
 Adaptadores.Add(adp);        //MessageBox::Show(msj, "Adptador de red", MessageBoxButtons::oK, MessageBoxIcon::Error);
        i++;
    }
    // Se libera la lista de tarjetas de red obtenida anteriormente.
    pcap_freealldevs(tarjetasRed);
} // FIN Sniffer(void)
en la sentencia subyadada me da el siguiente error:
error C2664: 'System::Collections::ArrayList::Add' : no se puede convertir el parámetro 1 de 'Adaptador' a 'System::Object ^'
¿¿¿¿¿como puedo revolverlo?????Muchas gracias.