在C语言中创建子数组的最佳方法是什么?

28

我有一个数组,例如a[3]={1,2,5}。 我需要创建另一个数组a2[2]={2,5}

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

是否还有其他方法可以在C语言中实现?

2个回答

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

难道不应该是 memcpy(&a2, &a[1], 2*sizeof(*a)); 吗? - Flame of udun
1
不是的,a2已经是指向数组的指针了,但a[i]是一个数字。 - Jan Kaifer

24

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

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

如果它们必须不同,那么你只能将数组元素复制到一个新数组中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接