Оно и будет оставаться, однако размер char - 1 байт. Возможно исчезнет предупреждение если сделать так
Код:
memmove(buffer, (void *)((unsigned long long)pMyClass->field.field3 + pMyClass->field.field1), i);
что не универсально, или
Код:
memmove(buffer, &((char *)pMyClass->field.field3)[pMyClass->field.field1], i);
что аналогично тому, что сейчас, но без явного сложения.