kopiere Zeigerwerte * a = * b in golang

type T struct {
    Id int
    Name string
}

func Copy(a *T, b *T) error {
    b.Id=5
    b.Name="gert"
    a = b
    return nil
}

a ist noch leer, ich muss es so machen

func Copy(a *T, b *T) error {
    b.Id = 5
    b.Name = "gert"
    a.Id = b.Id
    a.Name = b.Name
    return nil
}

jetzta ist das gleiche wieb

Warum und wie kann ich kopieren?*b zu*a direkt?