在C中从数组创建子数组的最佳方法

我有一个数组说a[3]={1,2,5} 。 我必须创建另一个数组a2[2]={2,5}

我试过的是创建一个新的数组a2[]并只复制所需位置范围内的所有元素。

有没有其他方法可以在C?中完成此任务。

 memcpy(a2, &a[1], 2*sizeof(*a)); 

不要使用第二个数组,只需使用指针:

 int a[3]={1,2,5}; int *p = &a[1]; 

如果它们必须是不同的,除了将数组元素复制到新数组之外别无选择。