構造体型配列と、memmove関数について質問があります。
以下のような構造体型の配列をmemmove関数でコピーするとき、
コピーを始める位置の指定((name + 1)の部分)は、下のようにしても問題ないのでしょうか?

#include <stdio.h>
#include <string.h>

typedef struct {
 char first[4], last[4];
} NAMESET;

int main(void) {
 NAMESET name[4] = {{"aaa","bbb"},{"ccc","ddd"},{"eee","fff"},{"ggg","hhh"},};
 NAMESET temp[4] = {};

 memmove(temp, name + 1, sizeof(NAMESET) * 2);

 printf("%s %s\n", temp[0].first, temp[0].last);
 printf("%s %s",  temp[1].first, temp[1].last);
 return 0;
}
結果:
ccc ddd
eee fff