如何获取结构中嵌入式切片的内存地址?

How can I get the memory address of an embedded slice in a struct?

Example:

type t1 struct {
    data string
}

type t2 struct {
    listData []t1
}

Now I want to know the memory address of listData. I couldn't figure out how to get the memory address out of it using the following:

newData := t2{}
newData.listData = append(newData.listData, t1{data:"mydata"})
printf("%p", &newData.listData) // this doesn't work, in fact it returns address of newData

listData is the first field in the struct, its memory offset relative to the struct's address is zero, so they have the same address.

type t2 struct {
listData []string
moreData []int
}

func main() {
    var foo t2
    fmt.Printf("%p %p %p", &foo, &foo.listData, &foo.moreData)
}

0x43e260 0x43e260 0x43e26c

https://play.golang.org/p/FVMujcUHHYq