猿问

具有来自用户输入的大小的数组

我有这么一段代码:


fmt.Scanf("%dx%d", &sizex, &sizey)  

var grid [sizex][sizey]int

我目前收到“非常量数组绑定 sizex”错误。如何创建具有用户选择的维度的数组?当然,我不想以后修改它的大小,但我显然不能使用常量。


慕容3067478
浏览 201回答 1
1回答

拉风的咖菲猫

我认为你正在寻找;grid := make([][]int, sizex)for i := 0; i < len(grid) i++ {&nbsp; &nbsp; &nbsp;grid[i] = make([]int, sizey)}这有点像new在 C++ 诗歌中使用关键字“在堆栈上”分配。要在您的问题中使用声明,大小参数必须是编译时已知的值。在上面的例子中make只适用于第一维,给了我一个数组[]int数组,但是,这些数组都没有被初始化,所以我必须遍历网格并使用 调用 makesizey来分配第二个维度。
随时随地看视频慕课网APP

相关分类

Go
我要回答