如何解决分割错误(核心转储)?

时间:2019-04-27 03:06:17

标签: c

我正在尝试为作业分配以下简单代码。它是一个大文件的一部分,但是无论我运行哪一部分代码,我都不断遇到分段错误错误。我对编码的经验不是很丰富,但是如果有人可以帮助我告诉我哪里出了问题,那将很棒。

我尝试在注释部分中查找错误,但无济于事。

#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <limits.h>
#include <cab202_graphics.h>
#include <cab202_timers.h>


void setup(double w, double h){
    clear_screen();
    // Draw Border
    draw_line(0,0,0,h-3,'|');
    draw_line(0,0,w-1,0,'-');
    draw_line(0,h-3,w-1,h-3,'-');
    draw_line(w-1,0,w-1,h-3,'|');
    // Draw Table
    draw_line(0,2,w-1,2,'-');
    draw_line(0,4,w-1,4,'-');
    draw_line((w/3)*2,0,(w/3)*2,4,'|');
    draw_line((w/3),0,(w/3),4,'|');
    // Draw Intersections
    draw_char(0,0,'+');
    draw_char(0,h-3,'+');
    draw_char(w-1,0,'+');
    draw_char(w-1,h-3,'+');
    draw_char(0,2,'+');
    draw_char(0,4,'+');
    draw_char(w-1,2,'+');
    draw_char(w-1,4,'+');
    draw_char((w/3)*2,0,'+');
    draw_char((w/3)*2,2,'+');
    draw_char((w/3)*2,4,'+');
    draw_char((w/3),0,'+');
    draw_char((w/3),2,'+');
    draw_char((w/3),4,'+');
    //Draw Charging Station
    draw_line((w/2)-4,5,(w/2)+4,5,'#');
    draw_line((w/2)-4,6,(w/2)+4,6,'#');
    draw_line((w/2)-4,7,(w/2)+4,7,'#');
    show_screen();
}

int main() {
    double w = screen_width();
    double h = screen_height();

    setup_screen();
    setup(w, h);
    return 0;
}

它应该显示带有边框的屏幕,顶部是桌子,下面是矩形“充电站”。

1 个答案:

答案 0 :(得分:0)

我知道了。 setup_screen()必须在screen_width()和screen_height()函数之前。由于这些是非标准库的一部分,因此我不完全知道它们的工作原理,但这可以解决问题。