В вашем коде есть две проблемы
1. Из-за вашей переменной count . Вы не увеличиваете переменную count, поэтому count всегда равен 0, а цикл никогда не заканчивается или идет бесконечно.
2. Недостаточно размера массива.
Также для ожидаемого результатаНе нужно применять цикл здесь, как вы написали код для объединения. Таким образом, удаление цикла будет работать. Вставляем ваш рабочий код.
#include <stdio.h>
#include <string.h>
int main() {
int width = 4;
char complete_row[width * 3 * 2*2];
char one[3], two[3], three[3], space[1];
strcpy(space, " ");
strcpy(complete_row, "");
int count = 0;
//make sure single line of color is replicated as much as width
strcpy(one, "1");
strcat(one, space);
strcpy(two, "2");
strcat(two, space);
strcpy(three, "3");
strcat(complete_row, one);
strcat(complete_row, two);
strcat(complete_row, three);
//print that twice in the output file
printf("%s", complete_row);
return 0;
}