La librairie m'a été fournie mais je dispose des fichiers sources donc je peux éventuellement les modifier. En fait, je cherche à faire appel à la fonction info(), qui est dans main.c. La structure numeroversion est quant à elle définie dans un fichier structure.h. Je (re)précise bien que les chaines de caractères sont maintenant initialisées avec une taille de 10 (plus char*). Toute aide sera la bienvenue concernant le code C, mais à mon avis c'est plutôt le Fortran (que je découvre) qui est mal codé, car je ne sais pas comment appeler correctement la fonction info() et c'est bien là que ça plante à l'exécution (j'ai vérifier avec des print).
program test
use iso_c_binding
implicit none
INTERFACE
FUNCTION info() BIND(C) RESULT (pa)
use iso_c_binding
type(c_ptr):: pa
END FUNCTION info
END INTERFACE
type(c_ptr), target :: pa
character(1, c_char),pointer::fpa(:)
pa=info() => Appel correct?
call c_f_pointer(pa, fpa, [50])
print*, fpa(1:50)
end program test
Merci pour vos réponses rapides en tout cas!
Message édité par dr-xam le 25-11-2011 à 14:05:09