How to get the memory address of a variable in Go or Golang?

August 26, 2022 - 2 min read

To get the memory address of a variable in Go or Golang, you can use the & symbol (ampersand) followed by the name of the variable you wish to get the memory address of.

TL;DR

package main

import "fmt"

func main(){

    // a simple variable
    role := "Admin"

    // get the memory address of
    // the `role` variable
    // using the `&` symbol before
    // the `role` variable
    roleMemAddr := &role

    // log to the console
    fmt.Println(roleMemAddr) // 0xc000098050 <- this was the memory address in my system, yours may be different
}

For example, let's say we have a variable called role having a string type value of Admin like this,

package main

func main(){
    // a simple variable
    role := "Admin"
}

Now to get the memory address of the role variable you can use the & symbol followed by the variable name role without any whitespace.

It can be done like this,

package main

func main(){
    // a simple variable
    role := "Admin"

    // get the memory address of
    // the `role` variable
    // using the `&` symbol before
    // the `role` variable
    roleMemAddr := &role
}

Finally, let's print the roleMemAddr value to the console like this,

package main

import "fmt"

func main(){
    // a simple variable
    role := "Admin"

    // get the memory address of
    // the `role` variable
    // using the `&` symbol before
    // the `role` variable
    roleMemAddr := &role

    // log to the console
    fmt.Println(roleMemAddr) // 0xc000098050 <- this was the memory address in my system, yours may be different
}

We have successfully got the memory address of a variable in Go. Yay 🥳!

See the above code live in The Go Playground.

That's all 😃.

Feel free to share if you found this useful 😃.