在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
有一段代码,涉及数组和指针: 1 //通过整形指针数组获取数组中的元素 2 func test(){ 3 var arr=[]int{1,2,3} 4 var ptr[] *int 5 for i:=0;i<len(arr);i++{ 6 ptr[i]=&arr[i] 7 fmt.Println(*ptr[i],"\t") 8 } 问题出现了:执行上述函数后,控制台报错:runtime error:index out of range [0] with length 0,出错代码指向了第6行,此行出现了空指针 问题原因:在第4行整形数组指针初始化时未给其分配内存空间,所以报错 问题修改:修改第4行为var ptr[len(arr)] *int,保存后执行,控制台又报错:non-constant array bound length,出错代码是第4行 问题原因:go语言数组动态初始化时,如var array [length]int这样的写法(length是动态的)会报错,需要加make 问题修改:修改第4行为ptr := make([]*int,len(arr)) 执行:>>>1,2,3
|
请发表评论