Ahh vale, estaba cambiandolo por variables estaticas u_char[6] etc, pero no creo que sea buena idea, ¿como puedo hacer para que me diga el tamaño de lo que apunta el puntero? XP porque con sizeof(*mac) me sale uno el primer elemento, pero para que me diga el tamaño de todos como se puede hacer?.
Gracias como siempre, un saludo.
Edito: Parece que no se puede, hay que hacer una variable estatica y pasar su dirección al puntero, luego ¿la unica solucion es multiplicar por 2 las variables declaradas?.
porque ahora habra:
Y me parece una caca tremenda XD.
Bueno parece que sustituyendo los punteros por esto:
Se soluciona parcialmente el problema, pero esto no lo consigo solucionar:
ERROR: La expresion debe tener valor L modificable.
Solución:
Así funciona, ¿os parece buena idea? O es mala calidad de código?
Gracias como siempre, un saludo.
Edito: Parece que no se puede, hay que hacer una variable estatica y pasar su dirección al puntero, luego ¿la unica solucion es multiplicar por 2 las variables declaradas?.
porque ahora habra:
Código (cpp) [Seleccionar]
u_char mac[6]; u_char *pmac; pmac = &(mac[0]); ...
Y me parece una caca tremenda XD.
Bueno parece que sustituyendo los punteros por esto:
Código (cpp) [Seleccionar]
&(mac_gateway[0])
Se soluciona parcialmente el problema, pero esto no lo consigo solucionar:
Código (cpp) [Seleccionar]
&(ip_atacante[0]) = (u_char*)&num_atacante;
ERROR: La expresion debe tener valor L modificable.
Solución:
Código (cpp) [Seleccionar]
memcpy(&(ip_atacante[0]), (u_char*)&num_atacante, sizeof(u_char)* 4);
memcpy(&(ip_gateway[0]), (u_char*)&num_gateway, sizeof(u_char)* 4);
memcpy(&(mac_atacante[0]), (u_char*)adaptador->Address, sizeof(u_char)* 6);
Así funciona, ¿os parece buena idea? O es mala calidad de código?