[Kde-devel-es] ayuda

Albert Astals Cid tsdgeos at terra.es
Tue Sep 6 16:27:18 CEST 2005


Lo que falla es que no llevas muy bien el tema de memoria (no te me mosquees 
pero es el problema típico que todos tenemos al comenzar a trabajar con 
punteros, etc ;-))

struct sockaddr_in * addr;
deberia ser
struct sockaddr_in addr;

Sino solo tienes un puntero que puede apuntar a un struct sockaddr_in (pero 
que no lo esta haciendo ya que no le has asignado nada), y lo que tu quieres 
es tener un struct sockaddr_in para que luego puedas hacer
bzero(&addr, sizeof(struct sockaddr_in));
y ponerlo en blanco.

Albert

A Dimarts 06 Setembre 2005 16:12, RIVAS Galloso Paul va escriure:
> Hola Albert, gracias por apoyarme tan rapido. Paso a describirte mi
> problema anexandote el codigo. Quizas como tu mencionas, en algo estoy
> fallando.
>
> Lo que yo hice es crear cuatro(04) variables publicas que las voy a
> utilizar en mi codigo:
>
> struct hostent *he;
> struct sockaddr_in * addr;
> u_long dirDestino;
> u_short puertoDestino;
>
> Dentro de mi codigo tengo lo siguiente:
>
> /**********
> bool frmConexionTCP::Valido_Escanear()
> {
>
>  if ( (he=gethostbyname(txtIP->text())) == NULL)
>     {
>         QMessageBox::information( 0, "Ingreso al Sistema ","Host no
> encontrado" ); txtIP->setFocus();
>         return false;
>     }
> else
>       bcopy(*(he->h_addr_list), &(dirDestino), sizeof(he->h_addr_list));
>
>
> puertoDestino=txtPuertoDel->text().toInt();
> bzero(&addr, sizeof(struct sockaddr_in));
> *//////////////
>
> La compilacion no me arroja errores, el error ocurre cuando le doy click
> sobre el boton escanear dandome un mensaje "segment fault". Te agradeceria
> mucho decirme donde podria estar la falla?. Gracias
>
> Atte.
> Paul Rivas
>
> -----Mensaje original-----
> De:	Albert Astals Cid [mailto:tsdgeos at terra.es]
> Enviado el:	mar 06/09/2005 8:54
> Para:	Spanish KDE development list.Lista de desarrollo de KDE en español
> CC:
> Asunto:	Re: [Kde-devel-es] ayuda
> No es una conclusion correcta, C y C++ se pueden mezclar sin problemas.
> Posiblemente no has incializado correctamente las estructuras.
>
> Albert
>
> A Dimarts 06 Setembre 2005 15:45, RIVAS Galloso Paul va escriure:
> > Amigos:
> >
> > Es el primero correo que envio a la lista, por lo cual espero me den todo
> > el apoyo posible para terminar mi proyecto.
> >
> > Estoy desarrollando un sistema de guerra informatica en QTDesigner, lo he
> > probado hasta el momento y anda muy bien. Sin embargo cuando deseo
> > agregar sentencias de C me arroja una violación de segmento. Todo eso
> > ocurre cuando agrego la sentencia _bzero o agrego valores a la estructura
> > sockaddr_in. Por ejm:
> >
> > bzero(&saDestino, sizeof(struct sockaddr_in));
> > sa.sin_family=AF_INET;
> >
> > Pienso que es por que estas sentencias son de C y yo las estoy incluyendo
> > dentro de un programa con extensión .cpp donde el compilador g++ es quien
> > lo compila. Lo que he pensado es separar las sentencias de C en un
> > archivo distinto con extensión .c y desde el .cpp llamar a la funcion
> > definida en .c, pero aun no tengo idea de cómo unir estos 02 archivos :
> > el de .cpp y el .c. Agredeceria mucho me confirmen si esta conclusión es
> > correcta.
> >
> > Atte.
> > Paul Rivas
>
> _______________________________________________
> Kde-devel-es mailing list
> Kde-devel-es at kde.org
> https://mail.kde.org/mailman/listinfo/kde-devel-es


More information about the Kde-devel-es mailing list