PHP 편집기 Xiaoxin은 "golang: 잘못된 메모리 주소 또는 0 포인터 역참조"라는 일반적인 오류 메시지를 소개하기 위해 왔습니다. Golang 프로그래밍 언어를 사용하여 애플리케이션을 개발할 때 때때로 이 오류가 발생합니다. 이는 일반적으로 코드에서 잘못된 메모리 주소 또는 0 포인터가 역참조되었음을 나타냅니다. 이 오류로 인해 프로그램이 중단되거나 예측할 수 없는 동작이 발생할 수 있습니다. 다음으로, 개발자가 이 문제를 더 잘 이해하고 해결하는 데 도움이 되도록 이 오류를 일으킬 수 있는 몇 가지 일반적인 원인과 해결 방법을 살펴보겠습니다.
Execute me
이제 HelloWorld
라는 프로그램이 있고 프로젝트 구조는 다음과 같습니다.
aaa.go
bbb.go
ccc.go
main.go
이제 프로그램을 실행하면 나타납니다 panic: 运行时错误:无效的内存地址或 nil 指针取消引用
근데 내가 바뀌자 main.go
올바른 값을 출력할 수 있습니다10
bbb.go
中的定义var aa = bbb.Bb
var aa = bbb.Bb
의 정의가 왜 잘못된지 모르겠습니다
왜 널포인터인지 모르겠네요
위 그림을 보시면 import와 변수 초기화 흐름이 나와있습니다. 이제 첫 번째 경우에도 aaa.world
。 world 函数中的变量 nil
被设置为 nil
,因为即使在 main 中的 init 函数运行之前,一旦 init 运行 bb
就指向有效内存,但在此之前,包 bbb
中的 bb 从未被初始化。让我们考虑第二种情况,这里init函数也给了bb一个有效的内存,但这里的问题是aa
被重新分配给bb,它指向有效的内存,分配后aa
마찬가지입니다.
위 내용은 golang: 잘못된 메모리 주소 또는 nil 포인터 역참조의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!