У меня два сомнения по поводу использования memmove ():
- Когда предпочтительнее использовать эту функцию вместо использования другой функции (например, созданной собственной функции)? Не уверен, что правильно понял.
- Сигнатура функции: void * memmove (void * dest, const void * src, size_t n). Если у меня есть простой массив arr [N], как я могу поместить его в вызываемую функцию? arr [N] или & arr [N]? Разница в том, объявлен ли массив с начальным размером или как указатель? У меня есть это сомнение, потому что я видел много примеров, где используются оба.
Надеюсь, я правильно объяснил свои сомнения.
изменить: мне нужно удалить элемент из массива, а затем я хочу переместить следующие элементы удаленного слева.
memcpy
может быть быстрее для неперекрывающихся данных; использованиеmemcpy
также служит для документирования того, что вы копируете между отдельными объектами, а не перемещаете элементы внутри одного объекта массива. 28.01.2012memmove()
. 28.01.2012&
передmyarray[i]
при использовании метода индекса. Излишне говорить, что все закончилось плохо. :] 19.06.2013