在go编程语言中如何为数组分配内存?

发布于 2024-11-17 11:54:29 字数 227 浏览 1 评论 0原文

我想在go中创建一个大小为N的数组,但我不知道编译时N是什么,我将如何为其分配内存?

例如,

func MakeArray(size int) {
  return new ([size]int)
}

这不起作用,因为大小不是常数。

这似乎是一个简单的问题,但我刚刚开始使用 go,通过阅读教程(或搜索相关文档),我并不清楚如何做到这一点。

I want to make an array of size N in go, but I don't know what N will be at compile time, how would I allocate memory for it?

e.g.

func MakeArray(size int) {
  return new ([size]int)
}

which doesn't work since size is not a constant.

This seems like a simple question, but I just started using go and it's not obvious to me how to do this from reading the tutorial (or searching the documentation for that matter).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

转身以后 2024-11-24 11:54:29

函数 make 创建切片、映射和通道,并返回 T 类型的初始化值。 make() 调用分配一个新的隐藏数组,返回的值将存储在该数组中。切片值指的是。

package main

import "fmt"

func main(){

   ptr := new(int)
   *ptr = 100

   fmt.Println("*ptr = ", *ptr)

   slice := make([]int, 10)    // slice with len(slice) == cap(slice) == 10

   for i:=0; i<len(slice); i++{
      fmt.Println(slice[i])
   }
}

The function make creates slices, maps, and channels, and it returns an initialized value of type T. The make() call allocates a new, hidden array to which the returned slice value refers.

package main

import "fmt"

func main(){

   ptr := new(int)
   *ptr = 100

   fmt.Println("*ptr = ", *ptr)

   slice := make([]int, 10)    // slice with len(slice) == cap(slice) == 10

   for i:=0; i<len(slice); i++{
      fmt.Println(slice[i])
   }
}
记忆消瘦 2024-11-24 11:54:29

对于切片,Go make 内置函数有两个或三个参数。

make(T, n)       slice of type T with length n and capacity n
make(T, n, m)    slice of type T with length n and capacity m

For slices, the Go make built-in function has two or three arguments.

make(T, n)       slice of type T with length n and capacity n
make(T, n, m)    slice of type T with length n and capacity m
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文