Ответ 1
memcpy(a2, &a[1], 2*sizeof(*a));
У меня есть массив say 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];
Если они должны быть разными, у вас нет другого выбора, кроме как скопировать элементы массива в новый массив.