以下代码始终卡住,窗口挂起

时间:2015-06-14 18:04:17

标签: c

 #include<graphics.h>
 #include<conio.h>
 #include<stdlib.h>
  #include<dos.h>
  #include<alloc.h>

main()
  {
    int gd = DETECT, gm, area, temp1, temp2, left = 25, top = 75;
    void far *p;

    initgraph(&gd,&gm,"C:\\TurboC3\\BGI"); 
    rectangle(25,75,100,100);
    int sz=imagesize(25,75,100,100);
    p=farmalloc(sz);
    getch();

    temp1 = 200;
    temp2 = 200;

    getimage(left, top, left + 100, top + 100, p);
    putimage(left, top, p, XOR_PUT);
    getch();
    putimage(temp1 , temp2, p, XOR_PUT);

    getch();
    closegraph();
    return 0;
}

每当我执行上面的代码时,编译器卡住并且窗口挂起。我不知道如何正确使用getimage()putimage()。我想在c中设计俄罗斯方块,所以首先要掌握这些功能

1 个答案:

答案 0 :(得分:0)

您没有为图像分配足够的内存,

sz=imagesize(25,75,100,100);
p=farmalloc(sz);
...
getimage(left, top, left + 100, top + 100, p);

我建议使用它来获取图像大小

sz=imagesize(left, top, left + 100, top + 100);

使用与getimage()相同的参数。