How to find the capacity of the pointer in Golang?

Pointers in Go programming language or Golang is a variable which is used to store the memory address of another variable. Pointers in Golang are also termed as the special variables. The variables are used to store some data at a particular memory address in the system. The memory address is always found in hexadecimal format(starting with 0x like 0xFFAAF etc.).
In pointers, you are allowed to find the capacity of the pointer with the help of cap() function. This function is a built-in function returns the capacity of the pointer to array. In Go language, capacity defines the maximum number of elements stored in a pointer to array. This function is defined under builtin.

Syntax:

func cap(l Type) int

Here, the type of l is a pointer. Let us discuss this concept with the help of the examples:



Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Go program to illustrate how to find the
// capacity of the pointer to an array
package main
  
import (
    "fmt"
)
  
// Main function
func main() {
  
    // Creating and initializing
    // pointer to array
    // Using var keyword
    var ptr1 [7]*int
    var ptr2 [5]*string
    var ptr3 [8]*float64
  
    // Finding the capacity of
    // the pointer to array
    // Using cap function
    fmt.Println("Capacity of ptr1: ", cap(ptr1))
    fmt.Println("Capacity of ptr2: ", cap(ptr2))
    fmt.Println("Capacity of ptr3: ", cap(ptr3))
  
}

chevron_right


Output:

Capacity of ptr1 : 7
Capacity of ptr2 : 5
Capacity of ptr3 : 8

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Go program to illustrate how to find the
// capacity of the pointer to an array
package main
  
import (
    "fmt"
)
  
// Main function
func main() {
  
    // Creating an array
    arr := [8]int{200, 300, 400,
       500, 600, 700, 100, 200}
      
    var x int
  
    // Creating pointer
    var p [5]*int
  
    // Assigning the address
    for x = 0; x < len(p); x++ {
        p[x] = &arr[x]
    }
  
    // Displaying result
    for x = 0; x < len(p); x++ {
      
        fmt.Printf("Value of p[%d] = %d\n",
                                 x, *p[x])
    }
  
    // Finding capacity
    // using cap() function
    fmt.Println("Capacity of arr: ", cap(arr))
    fmt.Println("Capacity of p: ", cap(p))
}

chevron_right


Output:

Value of p[0] = 200
Value of p[1] = 300
Value of p[2] = 400
Value of p[3] = 500
Value of p[4] = 600
Capacity of arr:  8
Capacity of p:  5


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.