Ainsi, l'offset est utilisé dans la manipulation des tableaux, ou de tout autres structures de données contiguës en mémoire.
L'unité utilisée pour calculer un offset est la plupart du temps la taille de l'élement le plus petit adressable directement ; il s'agit dans la plupart des architectures de l'octet. La position exacte d'un objet en mémoire peut se calculer simplement par la formule :
adresse absolue = adresse de base + offset * taille d'un élément
Ainsi, dans la structure suivante (en C#) :
struct exemple {
Byte a;
Int16 b;
Int32 c;
}
l'offset de l'élément b sera de 1 octet (taille de l'élément a) ; l'offset de l'élément c sera 3 octets (taille de a plus taille de b).
Offset dans un tableau
Dans le cas d'une position relative au sein d'un tableau, l'unité de calcul sera la taille des éléments du tableau. Ainsi, le n élément d'un tableau sera toujours à l'offset n-1 quels que soient les éléments du tableau. Le terme anglais index désigne le numéro représentant l'élément. Il correspond exactement à l'offset dans le cas de langages tels que C. Dans d'autres langages, le premier élément ne portant pas nécessairement le numéro 0, il peut exister un décalage entre l'index d'un élément et son offset.
Dans un tableau défini en Visual Basic par :
Dim tableau(2 To 5) As Integer
ou en Pascal par :
tableau : array[2..5] of Integer
l'index du troisième élément sera 4, tandis que son offset sera 2.