He estado tratando de crear un ciclo for que se repita basado en la longitud de un paquete de red. En la API existe una variable (size_t) por event.packet-> dataLength. Quiero iterar de 0 a event.packet-> dataLength-7 aumentando i por 10 cada vez que itera, pero estoy teniendo un mundo de problemas.Convirtiendo un size_t en un entero (C++)
Busqué soluciones pero no he podido encontrar nada útil. Traté de convertir el size_t a un int sin firmar y hacer la aritmética con eso, pero desafortunadamente no funcionó. Básicamente todo lo que quiero es esto:
for (int i = 0; i < event.packet->dataLength - 7; i+=10) { }
Aunque cada vez que hago algo como esto o intento de mis conversiones del i < # parte es un número enorme. Dieron una declaración de printf en un tutorial para la API que usaba "% u" para imprimir el número real, sin embargo, cuando lo convierto en un int sin firmar, sigue siendo incorrecto. No estoy seguro de a dónde ir desde aquí. Cualquier ayuda sería muy apreciada :)
Piensa en ello: ¿Cuál es el valor de 'static_cast (- 1)'? ¿Qué sucede cuando 'event.packet-> dataLength' es menor que 7? –
genpfault
¿Por qué no puedo 'i' ser un' size_t' también? Además, a menos que la longitud sea siempre igual a 7 mod 10, se trata de un bucle muy peculiar que se intentará. – OrangeDog
¿Has intentado convertir 'event.packet-> dataLength' en' int'? – Dawson