You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the program below, 'i' is treated as not escaping, yet it does escape. This can
cause crashes and memory corruption.
package main
import (
"fmt"
)
type T struct {
v *int
}
func foo(ch chan *T) {
i := 42
t := T{&i}
defer func() {
ch <- &t
}()
}
func main() {
ch := make(chan *T, 2)
foo(ch)
foo(ch)
close(ch)
for t := range ch {
fmt.Printf("%v %v\n", t, *t.v)
}
}
The text was updated successfully, but these errors were encountered:
The text was updated successfully, but these errors were encountered: