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