[C言語]配列のアスキー

#include 
#include 
#include 
#include 

char buf[25][80];

void Gen_line(int,int,int,int);

int main(){

	int x1=5, y1=0;
	int x2=25, y2=0;
	int x3=30, y3=10;
	int y;

	memset(&buf[0][0],' ',25*80); 

	Gen_line(x1,y1,x2,y2);
	Gen_line(x2,y2,x3,y3);
	Gen_line(x3,y3,x1,y1);

	for(y=24; y > =0; y--){
		printf("%.80s",&buf[y][0]);
	}
	fflush(stdout);

	return 0;
}

void Gen_line(int xS, int yS, int xE, int yE){
	double dx, dy, a = 0, b=0;
	int x,y;

	buf[yS][xS]='*';
	buf[yE][xE]='*';

	if(xS==xE){
		if(yS > yE){
			y = yS; yS = yE; yE=y;}
			for(y=yS+1; y xE){
				x=xS; xS=xE;xE=x;y=yS;yS=yE;yE=y;
			}
			dx=xE-xS; dy=yE-yS;
			a=dy/dx; b=yS-a*xS;

			for(x = xS+1; x < xE; x++){
				y=a*x + b + 0.5;
				buf[y][x]= '*';
			}
		}
	}

$ ./main
** ** *** * ** *** * ** *** * ** *** * ** *********************

三角形になってる? 意味がわからん