У меня большая проблема с моим кодом.
Я не могу найти решение проблемы. Код работает с файлом Lista.h. список создается путем чтения текстового файла через анализатор гибкости и компилятор bison. Ниже кодов для файла «. c» и библиотеки «.h»
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "Lista.h"
double search_CFU(char Cod_M);
Materia *lista;
Materia *ins_M(char cod_m, int anno_c, double CFU){
Materia *c;
c = (Materia *)malloc(sizeof(*c));
c -> cod_m = cod_m;
c -> anno_c = anno_c;
c -> CFU = CFU;
}
Carriera *lista1;
Carriera *ins_s(char matr, int anno_c){
Carriera *s;
s = (Carriera*)malloc(sizeof(*s));
s -> matr = matr;
s -> anno_c = anno_c;
}
double Calc_M(char Cod_M, double voto){
if(lista -> anno_c == lista1 ->anno_c){
double num_CFU = search_CFU(Cod_M);
lista1 -> prodotto = num_CFU * voto;
lista1 -> CFU += num_CFU;
lista1 -> num_e+1;
}
}
double search_CFU(char Cod_M){
while(lista != NULL){
if(Cod_M == lista-> cod_m){
return lista -> CFU;
}
else printf("Errore");
}
}
void print(){
Carriera *tmp = lista1;
while(lista1 != NULL){
printf("%d > %f > %d > %f,2", lista1 -> matr, lista1 -> CFU, lista1 -> num_e, lista1 -> prodotto/ lista1 -> CFU);
lista = lista -> next;
}
lista1 = tmp;
}
библиотеки:
typedef struct c{ //corsi
char cod_m;
int anno_c;
double CFU;
struct c *next;
}Materia;
typedef struct s{ //studenti
char matr;
int anno_c;
double CFU;
double prodotto;
int num_e;
struct s *next;
}Carriera;
Materia *ins_M(char cod_m, int anno_c, double cfu);
Carriera *ins_s(char matr, int anno_c);
double Calc_M(char cod_m, double voto);
вывод: segmentation fault. спасибо, ребята
ОБНОВЛЕНИЕ:
У меня новая ошибка, скомпилированная с помощью «-Wall -Werror»
ошибка:
Carriera.c: In function ‘ins_M’:
Carriera.c:17:1: error: control reaches end of non-void function [-Werror=return-type]
17 | }
| ^
Carriera.c: In function ‘ins_s’:
Carriera.c:26:1: error: control reaches end of non-void function [-Werror=return-type]
26 | }
| ^
Carriera.c: In function ‘Calc_M’:
Carriera.c:37:1: error: control reaches end of non-void function [-Werror=return-type]
37 | }
| ^
Carriera.c: In function ‘search_CFU’:
Carriera.c:47:1: error: control reaches end of non-void function [-Werror=return-type]
47 | }
спасибо