1
    int main()
    {
        struct ev_loop *loop1 = EV_DEFAULT;
        struct ev_loop *loop2 = ev_default_loop(0);
        printf("%ld\n%ld\n", (long)loop1, (long)loop2);
        return 0;
    }

はい、loop1 は loop2 と同じです。しかし、なぜそれらは両方ともヒープではなくスタック上にあるのでしょうか? で、多分 ev_default_loop はこんな感じで、

    int* func()
    {
        int a;
        return &a;
    }

しかし、func が戻った後、そのスタックはクリーンアップされています。それで、それは本当に安全ですか?

4

1 に答える 1