Using memcpy to copy a range of elements from an array

Eminemya picture Eminemya · Oct 10, 2010 · Viewed 36.5k times · Source

Say we have two arrays:

double *matrix=new double[100];
double *array=new double[10];

And we want to copy 10 elements from matrix[80:89] to array using memcpy.

Any quick solutions?

Answer

James McNellis picture James McNellis · Oct 10, 2010

It's simpler to use std::copy:

std::copy(matrix + 80, matrix + 90, array);

This is cleaner because you only have to specify the range of elements to be copied, not the number of bytes. In addition, it works for all types that can be copied, not just POD types.