memcpy vs for loop - Как правильно копировать массив из указателя?

У меня есть функция foo (int [] nums) , которая, как я понимаю, по сути эквивалентна в foo (int * nums) . Внутри foo мне нужно скопировать содержимое массива, на который указывает nums , в некоторый int [10] , объявленный в рамках foo . Я понимаю, что следующее неверно:

void foo (int[] nums) 
{
    myGlobalArray = *nums
}

Как правильно скопировать массив? Должен ли я использовать memcpy так:

void foo (int[] nums)
{
    memcpy(&myGlobalArray, nums, 10);
}

или мне следует использовать цикл for?

void foo(int[] nums)
{
    for(int i =0; i < 10; i++)
    {
        myGlobalArray[i] = nums[i];
    }
}

Есть ли третий вариант, который мне не хватает?

35
задан Drew Noakes 30 May 2014 в 23:14
поделиться