From: İsmet Sönmez (isonmez@bek.org.tr)
Date: Tue 11 Apr 2006 - 19:28:13 GMT
Merhabalar,
Alloca kullanarak yaptığım bir fonksiyonum düzgün çalışmıyor.
Yardımcı olursanız sevinirim.
Öncelikle SCR_Fill fonskiyonunda tanımlanıyor.Bu fonksiyona BOŞLUK bas
dediğim zaman
lcd_puttext fonksiyonunda b ile giden string b[0] değer atılmamış ama
b[1] atılmış.
Değer atamalar ardışık geliyor.
Acaba alloca ile alınan hafızaya yanlışmı atama yapıyorum.
void SCR_Fill (int x1, int y1, int x2, int y2, int ch, int colour)
{
int i;
int size = (x2-x1+1) * (y2-y1+1);
int fill = (colour << 8) + ch;
word *buf = alloca (2*size);
word *b = alloca (size);
if(scr_type==0)
{
for (i = 0; i < size; i++)
buf[i] = fill;
puttext (x1, y1, x2, y2, buf);
}
else
{
for (i = 0; i < size; i++)
b[i] = ch;-------------------->Örneğin boşluk basırıyorum.Ama bir
boşluk bir NULL yapıyor.
lcd_puttext (x1, y1, x2, y2, b);
}
}
int lcd_puttext (int left, int top, int right, int bottom, const char
*source)
{
int Row,Col;
int Y,X,i;
Y = lcd_wherey ();
X = lcd_wherex ();
i = 0;
for (Row = top ; Row < bottom + 1 ; Row++)
{
lcd_gotoxy (left,Row);
for (Col = left ; Col < right + 1 ; Col++)
{
lcd_putch(source[i]);------------------------------>ekrana basma
işlemi burada gerçekleşiyor.
i++;
}
}
lcd_gotoxy (X,Y);
return 0;
}
İsmet Sönmez
Bursa Ecza Koop.
Tel:224 270 0164
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama