Tema: C: masyvo elementu perdavimas funkcijai
Autorius: Kantega
Data: 2011-02-28 18:33:58
Sveiki,

pagelbėkit lameriui su C (jei konkrečiai, tai WinAVR C) ;)
turiu funkciją:

void WriteByteToDisplay(unsigned char ByteToSend).

Jeigu jai perduodu tiesiogines konstantas. tipo 'K' arba paprastus unsigned char kintamuosius, viskas veikia.
Tačiau, jei tik pabandau padaryti tokį fokusą:

unsigned char DisplayData[5];
DisplayData[5] = 'F', 'U', 'C', 'K', 'K';

...
 WriteByteToDOG(DisplayData[0]);  
....
arba kokiam cikle:

WriteByteToDOG(DisplayData[i]);  

Viskas nebeveikia run-time t.y. kompiliuojasi be klaidų ir ispėjimų, o programos veikimo metu į displėjų nusisiunčia nežinia kokie duomenys.
Darau išvadą, kad kažko nesuprantu su tipais, nes galvoju kad DisplayData[0] gražina unsigned char kintamąjį ir kad jį taip paprastai galima perduoti į funkciją... ;) 
Paaiškinkit, pls, kaip yra iš tikrųjų...