小编Luk*_*rst的帖子

使用自定义入口点运行程序时(使用gcc 7.4.0),scanf会产生segfault

考虑以下代码:

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

int main() {
    printf("main\n");
    int a;
    scanf("%d", &a);
    printf("a = %d\n", a);
    return 0;
}

int main1() {
    printf("main1\n");
    int a;
    scanf("%d", &a);
    printf("a = %d\n", a);
    exit(0);
    return 0;
}

int main2() {
    printf("main2\n");
    int a = getchar() - '0';
    int b = getchar() - '0';
    int c = getchar() - '0';
    printf("a = %d\n", 100 * a + 10 * b + c);
    exit(0);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

假设代码位于一个名为test.c的文件中,则以下代码可以正常工作(它显示“ a = 123”):

gcc -o …
Run Code Online (Sandbox Code Playgroud)

c gcc

11
推荐指数
1
解决办法
185
查看次数

标签 统计

c ×1

gcc ×1