Вы должны вручную скопировать память из одного массива в другой с помощью функции, подобной memcpy
.
Так, например:
memcpy(array1, array2, sizeof(array1));
Имейте в виду, что мы можем использовать оператор sizeof
для array1
, поскольку это явный массив, размещенный в стеке. Как заметил комментатор, мы передаем размер места назначения, чтобы избежать переполнения буфера. Обратите внимание, что та же самая техника могла бы быть сделана и для статически размещенного массива, но вы не можете использовать его для массива, динамически размещаемого в куче, используя malloc
, или с некоторым указателем на массив ... в этих ситуациях вы должны явно передать размер массива в байтах в качестве третьего аргумента.
Наконец, вы захотите использовать memcpy
над for
-циклом, потому что функция обычно оптимизирована для копирования блоков памяти с использованием инструкций на уровне машинного кода, которые значительно опередят эффективность цикл for, даже если включена оптимизация компилятора.