Junior — Senior
56
Неожиданное поведение указателей, получаемых в range, при их добавлении в срез
Условие задачи
Определите, какие числа будут напечатаны программой, и поясните причину странного результата, возникающего при итерации по массиву с помощью цикла range и сохранении полученных указателей в срез.
package main
import "fmt"
func main() {
first := []int{10, 20, 30, 40}
second := make([]*int, len(first))
for i, v := range first {
second[i] = &v
}
fmt.Println(*second[0], *second[1])
}