开发者

How do I allocate memory for an array in the go programming language?

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).


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])
   }
}


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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜