Горутина стартует с маленьким стеком (2-8 KB). При вызове функции проверяется stackguard — хватает ли места. Если нет, runtime выделяет новый стек в 2 раза больше, копирует старый, обновляет все указатели на стек. Это copyable stacks. Стек может и уменьшаться при GC если используется меньше четверти. Поэтому адреса на стеке нестабильны.
Как работает goroutine stack growth?
Middle
186 просмотровAFK Offer AI
Что выведет: a := [3]int{1,2,3}; b := a; b[0] = 99; fmt.Println(a[0])?