1. 程式人生 > 實用技巧 >go:index out of range [0] with length 0與non-constant array bound length

go:index out of range [0] with length 0與non-constant array bound length

有一段程式碼,涉及陣列和指標:

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

本文相關文章:https://blog.csdn.net/anguowei/article/details/102601369?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param