gpt4 book ai didi

找不到段错误的位置

转载 作者:太空宇宙 更新时间:2023-11-04 06:07:59 28 4
gpt4 key购买 nike

我已经编程了一段时间了,不是那么多,但我似乎真的很难找到段错误的位置,已经尝试了几乎所有的东西:(。这是一个学校项目,老师们不会通常不会在这方面提供帮助。

好了,代码在这里:

#include "funcoes2.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

listaa total_aero = NULL;

void guarda_voo()
{
listaa t; /* struct list of airports */
voo novo_voo;
aeroporto novo_aeroporto1;
aeroporto novo_aeroporto2;


scanf("%s %s %s %d:%d %s %f\n", novo_voo.codigo, novo_voo.aero_partida, novo_voo.aero_chegada, &novo_voo.hora_partida, &novo_voo.minuto_partida, novo_voo.hora_chegada, &novo_voo.preco);

for(t=total_aero; t != NULL; t = t->prox){
if(!strcmp(t->naero.codigo, novo_voo.aero_partida))
break;
}

if(t == NULL){
insere_aeroporto(total_aero, novo_aeroporto1); /* adds an airport to the list, I also think that it won't reach here when executing */
strcpy(total_aero->naero.codigo, novo_voo.aero_partida);
total_aero->naero.voos_saem++;
strcpy(total_aero->naero.aero_barato, novo_voo.aero_chegada);
strcpy(total_aero->naero.aero_tarde, novo_voo.aero_chegada);
total_aero->naero.preco_barato=novo_voo.preco;
total_aero->naero.hora_tarde=novo_voo.hora_partida;
total_aero->naero.minuto_tarde=novo_voo.minuto_partida;
total_aero->naero.situacao='a';
total_aero->naero.voos = NULL;
insere_voo((total_aero->naero).voos, novo_voo);
}
else{
t->naero.voos_saem++;
if(novo_voo.preco < (t->naero.preco_barato)){
t->naero.preco_barato=novo_voo.preco;
strcpy(t->naero.aero_barato, novo_voo.aero_chegada);
};
if((t->naero.hora_tarde<novo_voo.hora_partida) || (t->naero.hora_tarde==novo_voo.hora_partida && t->naero.minuto_tarde<novo_voo.minuto_partida)){
(t->naero.hora_tarde=novo_voo.hora_partida);
(t->naero.minuto_tarde=novo_voo.minuto_partida);
strcpy(t->naero.aero_tarde, novo_voo.aero_chegada);
}
insere_voo(t->naero.voos, novo_voo);
}


for(t=total_aero; t != NULL; t = t->prox){

if(!strcmp(t->naero.codigo, novo_voo.aero_chegada)){
t->naero.voos_chegam++;
return;
}
}

提前致谢,如果有什么不清楚的地方,请告诉我,我会尽力解释

我将把 .h 文件放在这里:

 typedef struct _st_voo{
char codigo[7];
char aero_partida[4];
char aero_chegada[4];
int hora_partida;
int minuto_partida;
char hora_chegada[6];
float preco;
}voo;



struct nodev {
voo nvoo;
struct nodev *prox;
};
typedef struct nodev *listav;



typedef struct _st_aeroporto{
char codigo[4];
int voos_saem;
int voos_chegam;
char aero_barato[4];
char aero_tarde[4];
float preco_barato;
int hora_tarde;
int minuto_tarde;
char situacao;
listav voos;
}aeroporto;


struct nodea {
aeroporto naero;
struct nodea *prox;
};
typedef struct nodea *listaa;



void guarda_voo();

void info_aeroporto();

void insere_voo(listav x, voo novo_voo);

void remove_voo(listav x, voo cancelado);

void insere_aeroporto(listaa x, aeroporto novo_aero);

最佳答案

您的代码输入一团糟。由于我们无法看到所有代码或执行它,因此不太可能有人能够找到它。您有 2 个选择:

  • 正确方法:了解如何使用 gdb 调试代码:http://www.gnu.org/software/gdb/
  • 肮脏的方式:使用 printf() 在代码的不同部分将语句打印到控制台,以帮助您确定发生段错误的位置和时间。

关于找不到段错误的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5835993/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com