Why this code crashes?

struct A { virtual void func() {} };
dynamic_cast<A*>(NewObject(GWorld));

Without seeing your stack trace it’s hard to tell but the guidelines by Epic Games say to use Cast (note the lack of *> instead of a dynamic_cast.