Los vectores de dopaje son una estructura de datos que los compiladores utilizan para almacenar algunos metadatos sobre la array, como su tamaño total, el tamaño de una unidad también llamada zancada de la array, etc. Estos se utilizan para describir arrays y otras estructuras similares que almacenan múltiples valores de un tipo de datos como un bloque completo de memoria. También puede describir estructuras que contienen arreglos y estructuras similares a sus componentes. Los vectores Dope ayudan a los compiladores a acceder a las arrays con facilidad. Diferentes comprobaciones implementadas por el compilador, como la comprobación fuera de límites, la comprobación del tipo de datos , etc. son todos posibles debido al vector de droga asociado con la array.
Los siguientes detalles se almacenan en el vector dope para una array en particular:
- E denota el tamaño de un solo elemento de array como E = 1 para caracteres, E = 4 para números enteros, etc.
- VO denota la memoria de inicio virtual de la array dentro de la RAM.
- LU1 denota el límite inferior inicial de la array.
- UB1 denota el límite superior hasta el cual la array está ocupada actualmente.
- UB2 denota el límite superior hasta el cual se puede llenar la array.
Los detalles que almacena un vector de droga varían de un sistema operativo a otro, pero en su mayoría contiene la siguiente información con respecto a una array:
- Rango o número de dimensiones de array o
- La dirección base de la array.
- El tipo de elementos almacenados en la array.
- El paso de la array.
- La extensión de la array.
y muchos otros detalles.
Hay muchos problemas que se resuelven usando el concepto de vectores de droga con las arrays a costa de una pequeña sobrecarga de cálculo (obteniendo datos del vector de droga) como:
- Es difícil liberar la memoria adicional asociada con la array sin el uso del vector dope. Suponga que inicialmente asignamos 200 KB de memoria para la array. Pero cuando se usó, solo requirió 150 Kb de memoria. Liberar la memoria adicional se vuelve bastante fácil con el uso del vector dope, ya que almacena la extensión de la memoria ocupada actualmente por la array.
- Sin los vectores de dope es muy difícil determinar el número de elementos en la array, ya que almacena la información del tamaño total de la array y la longitud de la zancada. Se puede usar para calcular el número total de elementos en la array.