У меня есть функция 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];
}
}
Есть ли третий вариант, который мне не хватает?