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 返回后,它的堆栈已经被清理干净了。那么它真的安全吗?