在一个简单的程序中用C获取分段错误

时间:2018-07-19 09:30:01

标签: c segmentation-fault

我编写了一个程序来测试人的年龄,如果年龄在18岁以上,它将进一步询问人的姓名和性别,并根据输出时打印的性别而定。

但是当我输入年龄之后,我会遇到细分错误。

我正在使用debian,并且是C语言的初学者。

#include <stdio.h>
#include <stdlib.h>

int main(){

    char name[20];
    int age;
    char gender;

    printf("How old are you ? \n");
    scanf(" %d",age);
    if(age >= 18){
        printf("What your name ? \n");
        scanf(" %s",&name);
        printf("What's your gender ? (m/f) \n");
        scanf(" %c",&gender);
        if(gender == 'm'){
            printf("Welcome Mr. %s \n",name);
        }else{
            printf("Welcome Ms/Mrs %s \n",name);
        }
    }else{
        printf("Nothing to see here! \n");
    }

    return 0;
}

1 个答案:

答案 0 :(得分:4)

您错过了该行中的&

scanf(" %d",age);