Имеются массивы, условно:
float Mass[100][4] и
uint8_t Rx [200].
Требуется с нужного места массива Mass записать выборку байт из массива Rx. Параметры выборки: uint32_t b - начало, uint32_t c - длина выборки. "Нужное место" задаётся параметром uint32_t a, являющимся номером байта в массиве Mass, условно представленного в виде одномерного массива (как расположены в памяти). При чём "a" может быть любым, не кратным количеству байт, определяемых форматом float (4). Подобные операции делал без проблем с помощью функции memcpy что-то типа:
memcpy(&Mass[k][f], &Rx[b], c);
В поставленной задаче надо делать как-то хитрее, если это вообще возможно. В указателях пока очень плохо разбираюсь. Если не трудно, покажите пожалуйста конкретный код решения этой хотелки.
uint8_t* destPtr = (uint8_t*)Mass; destPtr += a; uint8_t* srcPtr = (uint8_t*)&Rx[b]; for (int i = 0; i < c; i++) { *destPtr = *srcPtr; destPtr++; srcPtr++; }