Why am I getting the process error 0xc0000005 with my code in C

0

This project is the skyline project for a school work, and at the moment I'm getting an error when I'm putting in the coordinates being that this error is 0xc0000005. Everything else is running smoothly as for now if I'm not wrong. If someone could explain to me why this is happening I would be grateful.

#include <stdlib.h>

typedef struct {
    int registerednumber; // It registers the number of buildings used in the array of buildings;
} registernumber;

typedef struct
{
    int li;//POINT MOST TO THE LEFT
    int hi;//HEIGHT OF THE BUILDING
    int ri;//POINT MOST TO THE RIGHT
} buildings;

void exitprogram(){
    exit(0);
}

int menu() {
    int optioninmenu=0;
    do {
        system("cls");
        fflush(stdin);
        printf("-------------SKYLINES------------- \n");
        printf(" 1-REGISTER NUMBER OF BUILDINGS \n");
        printf(" 2-REGISTER BUILDING COORDINATES \n");
        printf(" 3-EXECUTE SKYLINE \n");
        printf(" 4-CREDITS \n");
        printf(" 5-EXIT \n \n");
        printf(" TYPE YOUR OPTION: ");
        scanf("%d", &optioninmenu);
    } while(optioninmenu!= 1 && optioninmenu!= 2 && optioninmenu!= 3 && optioninmenu!= 4 && optioninmenu!= 5 && optioninmenu!=0);
    return(optioninmenu);
}

int credits() {
    int returntomenu = 0;
    system("cls");
    printf(" ################################ \n");
    printf(" #This program was done by:     #\n");
    printf(" #Joao Moura A93099             #\n");
    printf(" #Eva Castro A93097             # \n");
    printf(" ################################ \n \n");
    printf("\n TYPE ENTER TO RETURN TO THE MAIN MENU");
    getchar();
    return menu();
}

int countbuildings(buildings *building, int *regnumberofbuildings) {
    int returntomenu = 0;
    int i=0;
    int numberofbuildings=0;
    system("cls");
    printf(" TYPE IN THE NUMBER OF BUILDINGS: ");
    scanf("%d", &numberofbuildings);
    *regnumberofbuildings=numberofbuildings;
    printf("%d",*regnumberofbuildings);
    printf("\n TYPE ENTER TO RETURN TO THE MAIN MENU");
    getchar();
    return menu();
}

int coordinates(buildings *building,int regnumberofbuildings) {
    int i=0;
    building=(buildings *)malloc(regnumberofbuildings*sizeof(building));
    system("cls");
    printf("%d",regnumberofbuildings);
    for(i=0;i!=regnumberofbuildings;i++){
        system("cls");
        printf("Building number %d \n \n", i+1);
        printf(" TYPE THE LEFTMOST COORDINATE: ");
        scanf("%d", &building[i].li);
        printf("\n TYPE IN THE HEIGHT OF THE BUILDING: ");
        scanf("%d", &building[i].hi);
        printf("\n TYPE THE RIGHTMOST COORDINATE: ");
        scanf("%d", &building[i].ri);
    }
    printf("\n TYPE ENTER TO RETURN TO THE MAIN MENU");
    getchar();
    return menu();
}

int main()
{
    int numberofbuildings=0;
    int registerednumber=0;
    buildings *building;
    int option=0;
    int i=0;
    do{
        option=menu();
        if(option==1){
            countbuildings(building,&numberofbuildings);
        }
        if(option==2){
            coordinates(building,numberofbuildings);
            getchar();
        }
        if(option==4){
            credits();
        }
    }while(option!=5);
    if(option==5){
        printf("Thanks for using our program!");
        printf("Press enter to leave the program");
        getchar();
        exitprogram();
    }
    return 0;
}
c
asked on Stack Overflow Dec 3, 2019 by João Moura • edited Dec 3, 2019 by Gerhardh

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0