2013-08-21 6 views
0

Est-il possible de couper le pointeur char pour supprimer l'en-tête du paquet?C++ cut char pointeur

Pour éviter les boucles:

Decryptor dec; 
char * datae = new char[_packet[0] - 8]; 
char * decrypted; 
for(int i = 0;i<_packet[0] - 8;i++) 
{ 
    datae[i] = _packet[8+i]; 
} 
decrypted = dec.decrypt(datae, _packet[0]-8); 
+2

Vous pouvez passer '_packet + 8' dans votre fonction' dec.decrypt() '. Lire sur "arithmétique du pointeur" – arne

+1

'std :: copy (_packet + 8, _packet + _packet [0] - 8, datae);' (Au cas où vous voulez vraiment copier les données [comme la boucle fait], et non change juste le pointeur) – bennofs

Répondre

3
Decryptor dec; 
char * decrypted = dec.decrypt(_packet + 8, _packet); // _packet[0] - 8 is going to give you the value of the character at _packet[0] minus 8, which is not likely to be what you want.