为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕容3067478 2021-10-25 14:31:08
我有这么一段代码:fmt.Scanf("%dx%d", &sizex, &sizey)  var grid [sizex][sizey]int我目前收到“非常量数组绑定 sizex”错误。如何创建具有用户选择的维度的数组?当然,我不想以后修改它的大小,但我显然不能使用常量。
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

我认为你正在寻找;


grid := make([][]int, sizex)

for i := 0; i < len(grid) i++ {

     grid[i] = make([]int, sizey)

}

这有点像new在 C++ 诗歌中使用关键字“在堆栈上”分配。要在您的问题中使用声明,大小参数必须是编译时已知的值。


在上面的例子中make只适用于第一维,给了我一个数组[]int数组,但是,这些数组都没有被初始化,所以我必须遍历网格并使用 调用 makesizey来分配第二个维度。


查看完整回答
反对 回复 2021-10-25
  • 1 回答
  • 0 关注
  • 200 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信