Инициализировать динамический массив без цикла?

Подскажите, как можно инициализировать динамический массив без цикла? Нашел вот такой способ

int arr[] = {[0 ... 20] = 0xFF};

но не могу понять как его применить для динамического массива


Ответы (1 шт):

Автор решения: avp

Можно сделать не совсем в точке создания, но очень похоже

int
main (int ac, char *av[])
{
  int *p = malloc(sizeof(int) * 22);  // 22 items array
  memcpy(p, (int [22]){[0 ... 20] = 0xFF}, 22 * sizeof(int));

  for (int i = 0; i < 22; i++)
    printf("%d ", p[i]);
  puts("");
  
  return puts("End") == EOF;
}
→ Ссылка