Bonjour à tous...

Voilà un petit programme de FORTRAN 90
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
IMPLICIT NONE
REAL*8, POINTER::v(
ALLOCATE(v(2))
v(1) = 1d0
v(2) = 2d0
write(*,*) v
DEALLOCATE(v)
write(*,*) v
END
Et son résultat:
1.00000000000000000 2.00000000000000000
0.000000000000000000E+00 2.00000000000000000

Comment expliquer le fait que, malgré la désallocation du pointer v, v(2) est toujours référencé et contient encore la bonne valeur ? La mémoire est-elle vraiment désallouée ? En remplaçant POINTER par un tableau type ALLOCATE, le comportement n'est pas le même... pourquoi ?

Merci de votre aide !!!