Sobes.tech
Junior — Middle

How is the size occupied by a slice determined in a programming language?

sobes.tech AI

Answer from AI

In Go, a slice is a structure that contains three fields: a pointer to an array, a length, and a capacity. The size of a slice in memory is determined by the sum of the sizes of these three fields.

Typically, the size of a slice is 24 bytes on 64-bit systems (8 bytes per field).

Important: the slice itself does not contain data, only a reference to the array where the elements are stored. The size of the data depends on the length of the slice and the size of the element type.

Example:

var s []int
// s occupies a fixed size (24 bytes),
// but the data it references occupies len(s)*sizeof(int) bytes