Инициализация массива через список инициализаторов допускается только после объявления. Так что вы можете сделать:
int arr[] = {1,2,3,4,5};
Но вы не можете сделать:
int arr[5];
arr = {1,2,3,4,5};
Вы должны использовать цикл или memcpy:
int tmp[] = {1,2,3,4,5};
// method 1
for(int i = 0; i < sizeof(tmp) / sizeof(*tmp); i++) {
arr[i] = tmp[i];
}
// method 2
memcpy(arr, tmp, sizeof(tmp));
Вы также можете воспользоваться составными литералами и отказаться от массива tmp:
memcpy(arr, (int []) {1,2,3,4,5}, sizeof((int []) {1,2,3,4,5}));