package main
import (
"fmt"
"unsafe"
)
func main() {
slice := []int{}
fmt.Printf("main slice:%v &slice:%p unsafe.Pointer:%p slice:%p len:%d cap:%v\n", slice, &slice, unsafe.Pointer(&slice), slice, len(slice), cap(slice))
slice = append(slice, 1, 2, 3, 4, 5)
fmt.Printf("main slice:%v &slice:%p unsafe.Pointer:%p slice:%p len:%d cap:%v\n", slice, &slice, unsafe.Pointer(&slice), slice, len(slice), cap(slice))
slice = append(slice, 6)
fmt.Printf("main slice:%v &slice:%p unsafe.Pointer:%p slice:%p len:%d cap:%v\n", slice, &slice, unsafe.Pointer(&slice), slice, len(slice), cap(slice))
slice = append(slice, 7)
fmt.Printf("main slice:%v &slice:%p unsafe.Pointer:%p slice:%p len:%d cap:%v\n", slice, &slice, unsafe.Pointer(&slice), slice, len(slice), cap(slice))
ap(slice)
fmt.Printf("main slice:%v &slice:%p unsafe.Pointer:%p slice:%p len:%d cap:%v\n", slice, &slice, unsafe.Pointer(&slice), slice, len(slice), cap(slice))
}
func ap(slice []int) {
fmt.Printf("ap slice:%v &slice:%p unsafe.Pointer:%p slice:%p len:%d cap:%v\n", slice, &slice, unsafe.Pointer(&slice), slice, len(slice), cap(slice))
slice[0] = 10
slice = append(slice, 10)
fmt.Printf("ap slice:%v &slice:%p unsafe.Pointer:%p slice:%p len:%d cap:%v\n", slice, &slice, unsafe.Pointer(&slice), slice, len(slice), cap(slice))
}