Initiliazing UObject as UProperty in inherted class of ACharacter

Everything in constructor will be used in constructing Class Default Object, so you should not create any object in constructor, other then CreateDefaultSubobject which usally is used for component creation

But why not just?

UCLASS()
class MYPROJECT3_API ACBaseCharacter : public ACharacter
{
    GENERATED_BODY()

public:
    UPROPERTY(EditAnywhere,BlueprintReadWrite, Category = General)
    UCInventory * Inventory;

    UPROPERTY(BlueprintReadWrite, Category = General)
    TSubclassOf<UCInventory> InventoryClass;

    virtual void BeginPlay() override;
}

ACBaseCharacter::ACBaseCharacter(const FObjectInitializer& ObjectInitializer) :Super(ObjectInitializer)
{
}

void ACBaseCharacter::BeginPlay() {
     Inventory = NewObject<UCInventory>(this,InventoryClass);
}

If you want to create default inventory, then consider creating array of UClasses (can be TSubclassOf) and fill inventory with items in array by spawning them and adding to inventory.

BeginPlay event was made for gameplay actor initiation, so don’t be shy to use it for init stuff.