BotonMenu
BotonIndice

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL


7. INTRODUCCIÓN A LOS PUNTEROS Y VARIABLES DINÁMICAS.
7.4. VARIABLES DINÁMICAS DE REGISTROS. (PUNTEROS CON TIPO)
7. INTRODUCCIÓN A LOS PUNTEROS Y VARIABLES DINÁMICAS.
7.4. VARIABLES DINÁMICAS DE REGISTROS. (PUNTEROS CON TIPO)
7. INTRODUCCIÓN A LOS PUNTEROS Y VARIABLES DINÁMICAS.
7.4. VARIABLES DINÁMICAS DE REGISTROS. (PUNTEROS CON TIPO)

SIGUIENTE

SIGUIENTE

SIGUIENTE


‒ Variables dinámicas de Registros.

Los registros también se pueden usar para crear variables dinámicas, para ello procedemos del siguiente modo:

TYPE
   TRegistro = Record
                C01:byte;
                C02:double;
              End;
   TPunteroReg=^TRegistro;

como se puede observar se usa el operador circunflejo para indicar que el tipo de dato será un puntero para el tipo de dato TRegistro, luego se tiene que definir el puntero usando la palabra reservada VAR, tal como se muestra:

VAR
   Registros:TPunteroReg;

Una vez definido la variable que será el puntero de la variable dinámica de tipo registro, se puede usar new si sólo queremos usar un registro como variable dinámica; pero si queremos crear una variable dinámica con varios registros entonces debemos usar getmem. A continuación un ejemplo de la creación de un arreglo de registros dinámicos:


Descargar
{$codepage UTF8}
TYPE

 TRegistro=Record
             C01:byte;
             C02:double;
           End;
 TPunteroReg=^TRegistro;
 
VAR

 Registros:TPunteroReg;
 i:byte;
 
BEGIN 

 getmem(Registros,SizeOf(TRegistro)*5);
 Writeln('Ingrese registros');
 Randomize;
 for i:=0 to 4 do
  Begin
    Registros[i].C01:=Random(9);
    Registros[i].C02:=Random
  End; 
 
 for i:=0 to 4 do
  Begin
    Writeln('Registros[',i,'].C01=',Registros[i].C01:8);
    Writeln('Registros[',i,'].C02=',Registros[i].C02:8:4)
  End; 
 freemem(Registros)
 
END.
Código fuente 10: Uso de un arreglo de registros con un puntero y su variable dinámica correspondiente.
Descargar

Los registros que usa esta variable dinámica se acceden usando los corchetes y teniendo en cuenta que el primer registro se encuentra en el índice 0.

Del ejemplo anterior, se puede observar que se está usando la función SizeOf, para determinar el tamaño en bytes del tipo de dato TRegistro, y de esa manera reservar la cantidad necesaria de bytes para 5 registros. La función SizeOf también sirve para saber el tamaño en bytes de los tipos de datos, es decir si queremos saber cuántos bytes tendrá una variable de tipo int64, podemos usar SizeOf(int64).


Última revisión: 10/12/2013.



SIGUIENTE
SIGUIENTE
SIGUIENTE


 
‒ Comentarios y sugerencias.

Agradezco de antemano, todo comentario, sugerencia, y donativo (a través de Paypal me), que ayude a mejorar los contenidos educativos de Conoce 3000. Además, cualquier pregunta o duda que tengas lo puedes hacer por este medio. Pero, todo contenido que pueda resultar ofensivo, malicioso, racista, sexista, discriminatorio, obsceno, vulgar será eliminado.








PORTADA |  INTERESANTE |  APUNTES |  LIBROS |  GALERIA


Creative Commons License


Todos los textos, imágenes y videos de Conoce3000 estan colocados bajo una licencia : Creative Commons Reconocimiento-NoComercial 3.0 Unported License.