Boas.
Construi um programa de gestão de quartos de um hotel em C, que basicamente trabalha com uma matriz de elementos (quartos). Depois cada quarto tem alguns campos onde se guarda o seu preço, o seu numero e letra, e um possivel nome associado à sua reserva ou venda.
Implementei isto tudo da forma mais simples, usei o malloc(sizeof(struc ... )) para criar os quartos e a tabela de quartos e inicializei tudo direitinho...
Compila sem erros nem warnings.
Mas quando vou a executar em modo without debuging, o programa crasha depois da função de criação da tabela dos quartos se completar. De salientar que essa função newTableRooms também chama a função newRoom, que serve para criar cada quarto individual.
Heis uma imagem do erro que aparece:
Ah e se tento ignorar o erro depois aparece este:
Se deixo como está e executo em Debug mode, ele executa normalmente e não crasha uma única vez...
Para ser mais preciso, ele em without debuging executava o programa ate ao final desta função e depois crashava com os erros anteriores:
Ah e a pequena função "newName" está aki:
Já sei mais detalhes sobre o erro, ele acontece nesta função, e o erro refere-se à linha a vermelho...
É assim que tenho as estruturas. O "nPT" passeio-o como apontador para a estrutura Names, só tenho dúvida se devo passar o campo "nameForRoom" também como um apontador para "nPT". Se o faço recebo alguns warnings.
Heis o erro da linha a vermelho:
Não aparece mais nenhuma output window. Se fizer break ele pára ali, se fizer continue ele continua a executar.
O que poderá ser?? Há horas que estou de volta disto e nao descubro...
Construi um programa de gestão de quartos de um hotel em C, que basicamente trabalha com uma matriz de elementos (quartos). Depois cada quarto tem alguns campos onde se guarda o seu preço, o seu numero e letra, e um possivel nome associado à sua reserva ou venda.
Implementei isto tudo da forma mais simples, usei o malloc(sizeof(struc ... )) para criar os quartos e a tabela de quartos e inicializei tudo direitinho...
Compila sem erros nem warnings.
Mas quando vou a executar em modo without debuging, o programa crasha depois da função de criação da tabela dos quartos se completar. De salientar que essa função newTableRooms também chama a função newRoom, que serve para criar cada quarto individual.
Heis uma imagem do erro que aparece:
Ah e se tento ignorar o erro depois aparece este:
Se deixo como está e executo em Debug mode, ele executa normalmente e não crasha uma única vez...
Para ser mais preciso, ele em without debuging executava o programa ate ao final desta função e depois crashava com os erros anteriores:
Código:
tRoom newSingleRoom(int l, char c,float p){
tRoom r;
r=(tRoom)malloc(sizeof(struct Rooms));
r->number=l;
r->letter=toupper(c);
r->price=p;
r->nameForRoom=newName();
return r;
}
Código:
nPT newName(){
nPT n;
n=(nPT)malloc(sizeof(struct Names));
return n;
}
Código:
void configTableRooms(char* filename, tTable t){
FILE *file;
int line;
float price;
char colunn;
char phrase[13];
char info[13];
[COLOR=red]file=fopen(filename, "r");[/COLOR]
if (file==NULL)
printf("Error found while reading from the Config.txt.\n");
else{
while (!feof(file)){
fgets(phrase, 13, file);
strcpy(info,strtok(phrase, " "));
sscanf(info, "%d%c",&line,&colunn);
strcpy(info,strtok(NULL, "\n"));
sscanf(info, "%f",&price);
t->room[line][index(colunn)]=newSingleRoom(line,colunn,price);
}
fclose(file);
}
}
Código:
typedef struct Names{
char Name[50];
} [COLOR=RED]*nPT;[/COLOR]
typedef struct Rooms{
int number;
char letter;
float price;
[COLOR=RED]nPT nameForRoom;[/COLOR]
enum situations situationRoom;
};
Heis o erro da linha a vermelho:
Não aparece mais nenhuma output window. Se fizer break ele pára ali, se fizer continue ele continua a executar.
O que poderá ser?? Há horas que estou de volta disto e nao descubro...
Última edição: