И мы хотим скопировать 10 элементов из матрицы [80:89] в массив с помощью memcpy.
Любые быстрые решения?
Ответ 1
Проще использовать std::copy:
std::copy(matrix + 80, matrix + 90, array);
Это чище, потому что вам нужно указать только диапазон элементов, которые нужно скопировать, а не количество байтов. Кроме того, он работает для всех типов, которые могут быть скопированы, а не только типов POD.
Ответ 2
memcpy(array, &matrix[80], 10*sizeof(double));
Но (так как вы говорите С++) у вас будет лучше безопасность типа с использованием функции С++, а не старой C memcpy:
Обратите внимание, что функция принимает указатель "один-конец-конец" диапазона, который вы хотите использовать. Большинство функций STL работают таким образом.