Копирование части массива

5N62V
Offline
Зарегистрирован: 25.02.2016

Всем бобра!

возникла задача скопировать из массива char кусок в 20 байт , начиная с ячейки на которую указывает i, в другой массив.

Попробовал было так:

memcpy(timeBuf, buffer[i], 20);

Но нифига не вышло. 

Пришлось писать тупо:

for(byte k=0;k<sizeof(timeBuf);k++)timeBuf[k]=buffer[i+k];

Так работает, но....   А поэлегантнее есть решение, подскажите плз.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Это делается вот так:

memcpy(timeBuf, buffer+i, 20);

При некоторых условиях (не будем разводить подробности на страницу) может ругнуться компилятор, тогда

memcpy(timeBuf, &(buffer[i]), 20);
5N62V
Offline
Зарегистрирован: 25.02.2016

Работает и первый и второй вариант. Спасибо , Евгений! 

пс. вот я натормозил-то :)