You do not need dynamically allocated memory (the new operator) anywhere in that code.
When you use local variables, the memory is allocated automatically from the stack and cleaned up when the function returns.
Simply use:
void AFlownPath::Tick(float DeltaSeconds)
{
// local var, automatically managed:
FVector newPos = GetActorLocation();
newPos.X += 0.5f * DeltaSeconds;
SetActorLocation(newPos);
}
Don’t use new/delete unless you really need it. I recommend some basic C++ tutorials for understanding memory management. It’s actually a lot easier than it looks, try not to over complicate things.