Bonjour,
je reçois par le réseau des données, je vais avoir par exemple un entier sur 4 octets, stocké dans un buffer.
le code suivant est-il toujours correct ?
Je pense que ce n'est pas correct. A cause du fait que &buffer[1] n'est pas forcément correctement placé en mémoire pour pointer vers un int, et qu'il faut faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 unsigned char buffer[100]; /* buffer[1..4] va contenir mon entier */ int n = *((int *)&buffer[1]); /* je suppose que sizeof(int) == 4, et je me fous de l'endianness, l'important n'est pas là */
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part memcpy(&n, &buffer[1], 4);
Code : Sélectionner tout - Visualiser dans une fenêtre à part n = buffer[1] * ? + buffer[2] * ? + etc...
J'ai raison ou pas ?
Partager