Заполнение массива значением

Массивы и коллекции / Массивы

void printArray(const char *name, const int arr[], size_t count) {
    printf("%s is {", name);
    for (size_t i = 0; i < count; i++) {
        if (i > 0) {
            printf(", ");
        }
        printf("%d", arr[i]);
    }
    printf("}\n");
}

int value = 5;

//an initializer fills with zeros only: {} or {0}
int zeros[3] = {};
//zeros is {0, 0, 0}

//any other value - with a loop
int arr[3];
for (size_t i = 0; i < 3; i++) {
    arr[i] = value;
}
//arr is {5, 5, 5}

//memset fills bytes, not int elements: right for 0 and -1 only
//(memset with 5 would give 84215045 in each int)
int minusOnes[3];
memset(minusOnes, -1, sizeof minusOnes);
//minusOnes is {-1, -1, -1}

//for char arrays memset is just right
char line[11];
memset(line, '-', 10);
line[10] = '\0';
//line is "----------"

//if your compiler is GCC or Clang (not standard C)
int gccArr[3] = {[0 ... 2] = 5};
//gccArr is {5, 5, 5}

printArray("zeros", zeros, 3);
printArray("arr", arr, 3);
printArray("minusOnes", minusOnes, 3);
printf("line is %s\n", line);
printArray("gccArr", gccArr, 3);