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

poo*_*ank 24 c arrays

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

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

在C中还有其他方法可以实现吗?

BLU*_*IXY 26

memcpy(a2, &a[1], 2*sizeof(*a));
Run Code Online (Sandbox Code Playgroud)


oua*_*uah 17

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

int a[3]={1,2,5};
int *p = &a[1];
Run Code Online (Sandbox Code Playgroud)

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