Это не работает:
packet = (buffer + i);
Потому что типы не совпадают. packet
имеет тип char (*)[84]
(то есть указатель на массив 84 char
), в то время как buffer
имеет тип char *
. Вам на самом деле не нужен этот дополнительный тип.
Учитывая, что sendPacket
определяется как:
int sendPacket(char packet[84])
Параметр packet
фактически имеет тип char *
, поскольку массивы в качестве параметров функции decay превращаются в указатель на первый элемент.
Затем вы можете вызвать эту функцию следующим образом:
result = sendPacket(buffer + i)
Выражение buffer + i
вычисляется по адресу элемента i
в буфере. Предполагая, что sendPacket
читает 84 байта с этого адреса, он будет захватывать следующие 84 байта в буфере.