next up previous
Next: Estructura SELECT CASE Up: Nuevas Facilidades del Fortran Previous: Módulos

Asignación Dinámica de Memoria y Apuntadores

La asignación dinámica de la memoria (en tiempo de ejecución) se realiza mediante la instrucción ALLOCATE asignándole un espacio de memoria a una variable que halla sido declarada utilizando el atributo ALLOCATABLE,por ejemplo:

    REAL, DIMENSION(:,:),ALLOCATABLE :: m   ! matriz de 2 Dimensiones
    INTEGER :: n                            ! Dimension de m
        READ*, n                            ! Lee la dimension de m
        ALLOCATE(m(1:n,1:n))                ! Solicita memoria para m
    ...
    DEALLOCATE(m)                           ! Libera memoria solicitada

Se puede determinar si una variable declarada ALLOCATABLE ya se le asigno memoria utilizando la instrucción intrínseca ALLOCATED.

Los apuntadores son variables que permiten referirse a distintos objetos durante la ejecución de un programa, por ejemplo:

    INTEGER, TARGET :: a, b         ! Variables
    INTEGER, POINTER :: p1, p2, p3  ! Apuntador
    a = 1; b = 2                    ! Asignacion de a y b
    p1 => a; p2 => b                ! Asignacion de los apuntadores
    PRINT*, a, b, p1, p2            ! Escribe 1 2 1 2
    p3 => p1; p1 => p2; p2 => p3    ! Asignacion de los apuntadores
    PRINT*, a, b, p1, p2            ! Escribe 1 2 2 1
    p1 = 3 ; a = p1                 ! Asignacion de ptr2 a ptr1
    PRINT*, a, b, p1, p2            ! Escribe 3 3 3 3

tabular353


Kay A. Tucci K.
Tue Apr 13 17:20:44 GMT-0400 1999