Título: Problema obtener datos de PIP_ADAPTER_INFO Publicado por: Kaxperday en 8 Julio 2015, 22:08 pm Lo de siempre diría, llamo a una función a la que le paso un PIP_ADAPTER_INFO por referencia, y me la rellenará:
Código
La llamada y declaración de la función está aquí: Código
Este printf muestra basura, ¿porqué?. Cuando pongo el printf que muestro de comentario en seleccionar_inferfaz() no muestra basura, funciona. Lo paso como referencia esta vez, y he reservado memoria previamente. No se que puede ser XD. Siento que abuso del foro :rolleyes: :rolleyes: :rolleyes: Saludos. Título: Re: Problema obtener datos de PIP_ADAPTER_INFO Publicado por: ivancea96 en 8 Julio 2015, 22:55 pm Qué lio de punteros, señor.
Código
¿Por qué un punteroa puntero? xD Título: Re: Problema obtener datos de PIP_ADAPTER_INFO Publicado por: Kaxperday en 8 Julio 2015, 22:58 pm jajaja
¿Pero no da igual eso que inicializarles a NULL? ¿Es indiferente o no? XD Saludos. Edito: Por cierto he modificado el código ahora tengo esto (elimine el puntero no hacia falta): Código
Pues no era necesario realmente el puntero, pero aún así no funciona XP. Título: Re: Problema obtener datos de PIP_ADAPTER_INFO Publicado por: ivancea96 en 8 Julio 2015, 23:10 pm Por curiosidad, por qué todas las variables las pones static .__.
Si bien es una forma de actuar, para evitar copiar variables a cambio de una limitada disponibilidad de ella, también es un modo más peligroso al trabajar con punteros. Además Código
Estás liberando el contenido de la variable. PIP_ADAPTER_INFO es un puntero. Estás liberandolo. Título: Re: Problema obtener datos de PIP_ADAPTER_INFO Publicado por: Kaxperday en 8 Julio 2015, 23:19 pm jajaja ostia.. :-[ :-[ :-[ :-X :-X
Código
Lo vaciaba y no me daba cuenta tanto código, me paso completamente desapercibido, pero es curioso, pero sin embargo me funcionaba pasar las ips a u_char* y me hacia arp a el rango de ips, a pesar de que tenía basura y de que la había vaciado, pero claro no sabía porque era entonces. En este caso la puse static por probar, pues para la variable lista_usuarios, gracias a que la declaré estática, luego puedo acceder a ella desde el main, devolviendo su valor con &lista_usuarios. Si no la pongo static pierde su valor y memoria al salir de la funcion, tendría que pasar un puntero como argumento a la función para obtener la lista: Código
Si no es static, se pierde su valor al recoger la lista en el main. Por cierto que tiene de malo inicializar un puntero con un nullptr? :xD :xD Saludos. Título: Re: Problema obtener datos de PIP_ADAPTER_INFO Publicado por: ivancea96 en 8 Julio 2015, 23:40 pm No dije que nullptr sea malo. Dije que estabas poniendo un IP** sin razón aparente xD
La forma de evitar static, es, o copiando la estructura, o pasándo un puntero sacado con new. E insisto, deberías usar new en C++, especialmente si trabajas con clases o estructuras. Título: Re: Problema obtener datos de PIP_ADAPTER_INFO Publicado por: Kaxperday en 8 Julio 2015, 23:44 pm jajaja ok, pero como es eso de usar ¿new? ¿algún ejemplo? Si con eso quito el static por mi perfecto socio.
Código: MyClass * p1 = new MyClass; ¿con un puntero? :laugh: :laugh: Pues que gracia, si me pase a clases fue para acabar con los punteros de las estructuras entre otras cosas XD. Oye pues funciona: Código
Lo compro, gracias ivancea <3. Saludos. Título: Re: Problema obtener datos de PIP_ADAPTER_INFO Publicado por: ivancea96 en 9 Julio 2015, 00:30 am Los punteros no son algo malo :/
Son algo necesario y muy útil, que seguirás usando. Con new además, llamas al constructor de la clase o estructura: Código
Título: Re: Problema obtener datos de PIP_ADAPTER_INFO Publicado por: Kaxperday en 9 Julio 2015, 10:53 am Ok, lo tendré en cuenta, muchas gracias ivancea, nos vemos.
Saludos. |