Theres no problem to use any variable type with TArray as it was made to store any data, in fact it is recommended if oyu use UE4. Issue may rise if you gonna use UPROPERTY() as it only supports types that reflection system supports.
Varbales with * are Pointers, they are Related memory addesses stored in integer variables (32bit for 32bit application 64-bit for 64bit application) they pointing in to some variable in memory which you can read and interact with, while normally setting normal variables copies the value, now instead you only copy memory address.
Is impotent that varables without UPROPERTY are not garbage collected, if you create normal object with new you need to delete later on or else you gonna have memory leak.