How to find the capacity of the pointer in Golang?
Last Updated :
05 Sep, 2019
Improve
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:
C
Output:
C
Output:
func cap(l Type) intHere, the type of l is a pointer. Let us discuss this concept with the help of the examples: Example:
// 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))
}
Capacity of ptr1 : 7 Capacity of ptr2 : 5 Capacity of ptr3 : 8Example 2:
// 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))
}
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