#include <cstdio>
struct GameAPI
{
static GameAPI* Ptr;
GameAPI()
{
Ptr = this;
}
struct
{
void func()
{
printf("%p\n",&Ptr);
}
}test;
};
GameAPI* GameAPI::Ptr = nullptr;
void cause_harm()
{
GameAPI kaboom; // goly gee! Did this just set Ptr to a local variable?
} // and did that local variable just go out of scope?
int main()
{
cause_harm();
}
I2luY2x1ZGUgPGNzdGRpbz4KCnN0cnVjdCBHYW1lQVBJIAp7CiAgICBzdGF0aWMgR2FtZUFQSSogUHRyOwoKICAgIEdhbWVBUEkoKQogICAgewogICAgICAgIFB0ciA9IHRoaXM7CiAgICB9CgogICAgc3RydWN0CiAgICB7CiAgICAgICAgdm9pZCBmdW5jKCkKICAgICAgICB7CiAgICAgICAgICAgIHByaW50ZigiJXBcbiIsJlB0cik7IAogICAgICAgIH0KICAgIH10ZXN0Owp9OwoKR2FtZUFQSSogR2FtZUFQSTo6UHRyID0gbnVsbHB0cjsKdm9pZCBjYXVzZV9oYXJtKCkKewogICAgR2FtZUFQSSBrYWJvb207IC8vIGdvbHkgZ2VlISBEaWQgdGhpcyBqdXN0IHNldCBQdHIgdG8gYSBsb2NhbCB2YXJpYWJsZT8KfSAvLyBhbmQgZGlkIHRoYXQgbG9jYWwgdmFyaWFibGUganVzdCBnbyBvdXQgb2Ygc2NvcGU/CgppbnQgbWFpbigpCnsKICAgIGNhdXNlX2hhcm0oKTsKfQ==