Это невозможно в C89 (на что ориентируется большинство компиляторов C). C99 поддерживается несколькими и имеет составные литералы:
int nums[5];
memcpy(nums, (int[5]){1, 2, 3, 4, 5}, 5 * sizeof(int));
Однако вы не можете назначить массив. Вы можете скопировать только в свою память. Вам понадобится другой массив, из которого вы копируете в C89
int nums[5];
int vals[] = { 1, 2, 3, 4, 5 };
memcpy(nums, vals, sizeof vals);
Обратите внимание, что оператор sizeof
возвращает размер своего операнда в байтах.