"nero" è uno string literal, dunque è un const char * (ossia, un puntatore all'area di memoria dove si trova la stringa in questione); array_num[i].colore è un array di char di dimensione COL; array_num[i].colore[COL] è un singolo char (tra l'altro fuori dalle dimensioni dell'array, dato che gli indici vanno da 0 a COL-1). Long story short: stai cercando di memorizzare un puntatore a char in un singolo char.
Per risolvere, copia la stringa in questione nell'array di char usando la strcpy:
codice:
strcpy(array_num[i].colore, "nero");
Stai attento a non cercare di memorizzare stringhe più lunghe di N; per avere maggiore sicurezza, usa snprintf:
codice:
snprintf(array_num[i].colore, N, "%s", "nero");
o in alternativa strncat (un po' più efficiente):
codice:
array_num[i].colore[0]=0;
strncat(array_num[i].colore, "nero", N);
(teoricamente esisterebbe la strncpy, ma purtroppo non va bene usarla come "copia con sicurezza" perché non garantisce la terminazione del buffer)