No. Any c++ standard allocations are unaffected by the GC. Only objects created by NewObject are collected.
Still no. You have to mark your pointers using UPROPERTY() while using UOBJECTS (otherwise these pointers is completely invisible for blueprints\GC) or using FGCObject interface if you need to store pointers inside regular classes (non-UObjects)
If you need to track pointers to the regular classes you can use TSharedPtr instead of raw pointers. To create an instance of the object you have to use MakeShareable(new YourObject(args…)); or just pass a pointer inside MakeShareable (and stop using original pointer after that). Your object will be deleted automatically when no more live TSharedPtr’s is referenced to the object. But this isn’t work with UObjects