Безопасно ли использовать memcpy
в следующем сценарии, когда данные копируются из большего индекса в блок в меньший индекс в том же блоке. Например:
char buf[100];
// fill in the data ...
memcpy(&buf[10], &buf[15], 10);
В приведенном выше сценарии меня не интересуют данные из ячеек 10–19, и я не против, если они будут перезаписаны. Есть ли какая-то причина, по которой этого следует избегать и вместо этого использовать memmove
?
РЕДАКТИРОВАТЬ: извините, я не сообщил о своем намерении должным образом, поэтому скажем, у меня есть данные из индекса 10–19 и данные из индекса 15–24, я хочу скопировать данные из 15–24 поверх 10–19, и мне все равно о данных с 10 по 19, безопасно ли для нас memcpy
даже если они перекрываются?
memcpy(&buf[20], &buf[10], 20);
будет - person user3125280   schedule 18.01.2014