Существует массив символов ACKbuffer[2]
, поэтому я сначала приводил к unsigned char
нужный элемент, но он выдает ошибку при попытке memcpy
преобразовать его в массив unsigned char
.
//first element is checksum
unsigned char ack_csum;
ack_csum = (unsigned char)ACKbuffer[0];
//second element is ACK which needs to be run through checksum
//in a checksum function that accepts unsigned char array as parameter
unsigned char ACK_actual = (unsigned char)ACKbuffer[1];
unsigned char ACK [1];
memcpy(ACK, ACK_actual, 1);
Ошибка:
note: expected ‘const void * restrict’ but argument is of type ‘unsigned char’
extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
^~~~~~
swap_client.c: In function ‘swap_write’:
swap_client.c:185:17: warning: passing argument 2 of ‘memcpy’ makes pointer from integer without a cast [-Wint-conversion]
memcpy(ACK, ACK_actual, 1);
Я также попробовал другой способ, но получаю invalid initializer
:
unsigned char ACK_actual = (unsigned char)ACKbuffer[1];
unsigned char ACK [1] = ACK_actual;
В идеале, я хочу, чтобы мой массив ACK
содержал это значение из ACKbuffer
.