如何使用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).

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