Вставить массив в массив

Здравствуйте, подскажите пожалуйста как к один большой массив сложить с другим, но меньшей разрядности, что бы в результате значения меньшего массива оказались на определенных индексах.

int mass[46] =    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
 int Vx[20] =         {0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

индексы 2-го массива должны оказаться на индексах 1-го с 9 по 29 индекс.

Никак.
Шутка.
Тупо записать в эти адреса значения не вариант ?

Или тебе нужно через ссылки и указатели ?

В цикле присваиваешь значения “ячейки” одного массива другому. Соблюдая необходимые индексы.

1 лайк
for(int i=0;i<20;i++){
mass[i+9]=Vx[i];
}

это не называется “сложить”. это вставка с заменой.
Ведь я правильно понял, что содержимое массива Vx должно заменить элементы массива mass с 9 по 29-ый?

Можно например так

memcpy((void*)(mass+9), (void*) Vx, sizeof(int)*20);
for (int i = 0; i<sizeof(Vx)/sizeof(Vx[0]); i++) mass[i+9]=Vx[i];
1 лайк

Всем спасибо

А зачем вообще тогда нужен второй массив ?

ЗЫ:там где то есть кнопочка “РЕШЕНО”

Кстати вопрос такой образовался:

При объявлении массива с его инициализацией, можно в индекс запихать значение с другого массива.
Типа так:

int arr1[3]={0,*(&arr2),2);

А как сделать так(объявить массив), что бы при обращению к этому индексу массива 1 была переадресация на значение в массиве 2 ?

никак
Массив в С - это набор элементов, расположенных в памяти ПОДРЯД.
Все остальное это уже не массив, а например linked list

Массив 1 - сделать массивом указателей на элементы массива 2, если я что-то понял в вопросе.