Ačiū, labai geras paaiškinimas :) Pradedu po truputį graibytis situacijoj :) > na, tai būtų elementari sintaksės klaida, nepraeitų pro kompilerį... Kodėl gi? Tai visai legali C sintaksė, net tokia keista programa turi kompliuotis: int main() { 1, 2, 3; return 0; } Tiesa, su -Wall turėtum gauti "warning: left-hand operand of comma expression has no effect". Trumpiau tariant, DisplayData[5] = 'F', 'U', 'C', 'K', 'K'; yra validi C sintaksė, tik daro visai ne tai, ką tu galvoji. unsigned char DisplayData[5] — čia aprašai masyvą iš penkių elementų; Realiai tavo elementai gali turėti indeksus nuo 0 iki 4. DisplayData[5] = 'F', 'U', 'C', 'K', 'K'; — čia bandai priskirti 'F' šeštam elementui (elementas su indeksu 5), kas yra už tavo masyvo ribų. visos likusios raidės tiesiog ignoruojamos, todėl nenuostabu, kad išvedama belekas. Inicializuok arba DisplayData[5] = {'F', 'U', 'C', 'K', 'K'} arba DisplayData[6] = "FUCKK"; (6, nes toks deklaravimas automatiškai prideda \0). Ilgį galima ir praleisti: DisplayData[] = "FUCKK"; Iliustracijai: #include <stdio.h> #define MAXCHARS 5 void output_char(char one_char) { printf("%c\n", one_char); } void output_array(const char chars[]){ int index = 0; //sukam while kol neužsiranam ant \0 while (chars[index]) { output_char(chars[index++]); } } int main() { char display_data_one[MAXCHARS] = {'L', 'A', 'B', 'A', 'S'}; //tas pats kaip display_data_two[5] = {'V', 'I', 'S', 'O', '\0'} char display_data_two[] = "VISO"; int i; //einam su for per masyvą ir po vieną simbolį // paduodam į funkciją for (i = 0; i < MAXCHARS; i++) { output_char(display_data_one[i]); } //paduodam visą masyvą funkcijai output_array(display_data_two); return 0; }