es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reposicionamiento de la estructura del tipo en Fortran.

Utilizo los punteros y tipos en mi código Fortran, pero aún no tengo la certeza de que todo esté correcto. Un ejemplo típico:

programa CheckArray

entero :: na = 10, nb=20
entero :: n
tipo arrtype
real, puntero :: r1(:) => null()
real, puntero :: r2(:) => null()
fin tipo
tipo(arrtype), puntero :: Barr(:) => null()
tipo(arrtype), puntero :: B => null()

!———–

asignar(Barr(1:na))
hacer n=1,na
asignar(Barr(n)%r1(-nb:nb),Barr(n)%r2(-nb:nb))
fin hacer

!———– a partir de aquí las líneas en las que necesito ayuda

hacer n=1,na
B => Barr(n) ! <- ¿Necesito limpiar B antes de esta operación?
B%r1(:) = 1
B%r2(:) = 2
!…
LLAMAR checkr(B%r1,B%r2)
!…
anulnulo(B) ! <- 1) ¿Solo se anula B, pero no Barr(n)?
! 2) ¿Necesito esta operación?
fin hacer

fin programa

No puedo encontrar la respuesta para lo siguiente: ¿puedo estar seguro de que la anulación del puntero B no crea cambios en el destino Barr(:)?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en informática especializado en punteros y Fortran, confirmo que anular el puntero B no afecta de ninguna manera al objetivo Barr(:). La anulación solo afecta a la variable del puntero en sí misma, no al array al que apunta.

    Además, anular el puntero B no es estrictamente necesario en este código. Sin embargo, es una buena práctica de programación anular los punteros después de que ya no sean necesarios para evitar cualquier posible fuga de memoria o comportamiento no deseado.

Comments are closed.