Bonjour,
J'essaye d'utiliser memcpy sur un tableaux de uint8_t mais j'ai a chaque fois une erreur:
uint8_t keyboardInput[MAX_BUFFER_KBD];
int index_buff_kbd;
memcpy(&keyboardInput+(index_buff_kbd-1), (const uint8_t *)32, 1);
Je voudais copier le caractere 32 (espace) a un endroit précis du tableau (index - 1) du tableau.
J'utilise memcpy car il peut y avoir des données binaires, je ne peux donc pas utiliser les fonctions standard tel que strcpy, strlen, strcat.
Erreur:
D:\donnees\dev\ARDUINO2\sketch\PICO2\MINITEL\Minitel1B_Telnet_Client3\Minitel1B_Telnet_Client3.ino: In function 'void editKeyboardInput(int)':
D:\donnees\dev\ARDUINO2\sketch\PICO2\MINITEL\Minitel1B_Telnet_Client3\Minitel1B_Telnet_Client3.ino:186:15: warning: 'void* memcpy(void*, const void*, size_t)' offset 0 is out of the bounds [0, 0] [-Warray-bounds=]
186 | memcpy(&keyboardInput+(index_buff_kbd-1), (const uint8_t *)32, 1);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pourquoi utiliser la méthode memcpy pour la recopie d'un et seul caractère ?
A ce propos, la syntaxe (const uint8_t *)32 est l'adresse 32 sur un uint8_t et non le caractère 32 ... autant dire que le programme partira au mieux dans les choux et au pire semblera fonctionner