Ho cercato di creare un ciclo for che si itera basandosi sulla lunghezza di un pacchetto di rete. Nell'API esiste una variabile (size_t) per event.packet-> dataLength. Voglio ripetere da 0 a event.packet-> dataLength - 7 aumentando i 10 ogni volta che itera ma sto avendo un mondo di problemi.Conversione di un size_t in un numero intero (C++)
Ho cercato soluzioni ma non sono riuscito a trovare nulla di utile. Ho provato a convertire il size_t in un unsigned int e facendo l'aritmetica con quello, ma sfortunatamente non ha funzionato. In pratica tutto quello che voglio è questo:
for (int i = 0; i < event.packet->dataLength - 7; i+=10) { }
Anche se ogni volta che faccio qualcosa di simile a questo o tentativo di mie conversioni la # Parte I < è un numero enorme. Hanno dato una dichiarazione printf in un tutorial per l'API che utilizzava "% u" per stampare il numero reale, ma quando lo converto in un unsigned non è ancora corretto. Non sono sicuro di dove andare da qui. Qualsiasi aiuto sarebbe molto apprezzato :)
Pensateci: qual è il valore di 'static_cast (- 1)'? Cosa succede quando 'event.packet-> dataLength' è minore di 7? –
genpfault
Perché non posso anche essere un 'size_t'? Inoltre, a meno che la lunghezza sia sempre uguale a 7 mod 10, questo è un loop molto particolare da provare. – OrangeDog
Hai provato a lanciare 'event.packet-> dataLength' in un' int'? – Dawson