Запись в массив с определенного индекса

Здравствуйте
Подскажите, возможно ли записать данные в массив с 10го инедкса, то есть скажем надо записать 8 байт получаемого по кан-шине фрейма

unsigned Data[72];
int len =0;
CAN.readMsgBuf(&len, Data[9]);

или так не работает?

unsigned char Data[72];

А в чем проблема? Ваш массив - как хотите, так и используйте. Только за пределы выходить не нужно

Это возможно, но сдается мне, делаете вы это неправильно.
Чтобы сказать точно, покажите прототип метода

“Я не знаю как надо, но вы делаете неправильно” Шютка.)

1 лайк

я знаю как надо :slight_smile: И даже нашел ту библиотеку, которую скорее всего использует @harbor - если я угадал, строчка в первом сообщении неверная и работать не будет.
Спрашиваю только на случай, если у него какая-то экзотическая библиотека

1 лайк

«Экзотики им захотелось…»

    INT8U readMsgBuf(INT32U *id, INT8U *ext, INT8U *len, INT8U *buf);   // Read message from receive buffer
INT8U readMsgBuf(INT32U *id, INT8U *len, INT8U *buf);         /* read buf with object ID      */
INT8U readMsgBufID(INT32U *id, INT8U *len, INT8U *buf);         /* read buf with object ID      */
INT8U readMsgBuf(INT8U *len, INT8U *buf);       

все думал нахрен первый параметр по ссылке, потом доперло туда кол-ао принятых байт кладется)

Есть вроде как две разные библиотеки для шилда mcp2515, и эта функция в одной из них(arduino-mcp2515-master).
Она работает нормально, в буфер при чтении данные приходят. Но так как я читаю с автомобильной кан-шины, то там диагностическая информация приходит несколькиими фреймами по 8 байт. И хотелось бы весь ответ из нескольких фреймов засунуть в один массив без лишних усилий.

так засовывайте

unsigned char Data[72];
int len = 0;
CAN.readMsgBuf(&len, &Data[9]);

я бы так сделал