分段错误(核心转储)。没有编译错误。搜索了论坛

时间:2015-04-12 13:09:44

标签: c

我正在学习C而我无法找到解决问题的方法,所以我向你们求助于你们的专家。 我可以编译并运行我的代码,但在我输入所有变量后,程序给我分段错误(核心转储) 我在Ubuntu 14.04上运行Geany作为编辑器和gcc作为编译器。

我的英语不是最好的。

继承我的代码:

#include<stdio.h>

typedef struct
{
int inkomst;
int hyra;
int el;
int vatten;
int tele;
int forsakring;
int mat;
int klader;
int lan;
int transport;
int ovrigt;
int summa;
} base;

void budgetBase();

int main(int argc, char *argv[]){
budgetBase();
return 0;}

void budgetBase(base c){
printf("BudgetBase\n\n");

printf("Monthly income: ");
scanf("%d", &c.inkomst);
printf("\nRent: ");
scanf("%d", &c.hyra);
printf("\nElectric bill: ");
scanf("%d", &c.el);
printf("\nWater bill: ");
scanf("%d", &c.vatten);
printf("\nTele/data bill: ");
scanf("%d", &c.tele);
printf("\nInsurance bill: ");
scanf("%d", &c.forsakring);
printf("\nFood bill: ");
scanf("%d", &c.mat);
printf("\nClothing: ");
scanf("%d", &c.klader);
printf("\nMorgage: ");
scanf("%d", &c.lan);
printf("\nTransport: ");
scanf("%d", &c.transport);
printf("\nOther expenses: ");
scanf("%d", &c.ovrigt);

    int sum = c.inkomst - c.hyra - c.el 
        - c.vatten - c.tele - c.forsakring 
        - c.mat - c.klader - c.lan - c.transport - c.ovrigt;

printf("\n\nSum: %d",sum);

return;}

我知道它看起来不错所以请你好。 :)

1 个答案:

答案 0 :(得分:3)

void budgetBase(base c){

应该是

void budgetBase(){
  base c
  /*Rest of the code*/

因为你打电话

budgetBase();

没有任何参数。这应该与函数签名匹配。

顺便说一句,不需要函数return;末尾的budgetBase()