import "fmt"
func zeroptr(ptr *int) {
*ptr = 0
}
func main() {
oneptr * int
*ptr = 1
fmt.Println("ptr is :", *ptr)
zeroptr(ptr)
fmt.Println("after calling zeroptr, the value of ptr is :", *ptr)
}
这不起作用,我正在寻找如下输出:
点是:1
调用zeroptr后,ptr的值为:0
最佳答案
您的指针指向什么?为了操作指针指向的内存,您首先需要将指针指向某个地方。现在,您的ptr
指向无效的nil
。例如,您可以这样做:
func main() {
var foo int
var oneptr *int = &foo
*oneptr = 1
fmt.Println("oneptr is :", *oneptr)
zeroptr(oneptr)
fmt.Println("after calling zeroptr, the value of oneptr is :", *ptr)
}
为了将来,请先缩进您的代码,然后再在此处提交。您可以使用
gofmt
程序执行此操作。