l'aide de Visual Studio 9 sur Windows 64 avec Intel Fortran 10,1C à Fortran appeler problème
J'ai une fonction C appelant Fortran, passer une chaîne littérale « xxxxxx » (mis fin non nulle) et la longueur passé caché arg 6 Fortran l'obtient bien puisque le débogueur reconnaît qu'il s'agit d'un caractère (6) var et qu'il a la bonne chaîne, mais quand j'essaie d'assigner un autre caractère Fortran * 6 var, j'obtiens l'erreur la plus étrange.
forrtl: severe (408): fort: (4): Variable Vstring has substring ending point 6 which is greater than the variable length 6
- appel C -
SETPR("abcdef",6);
- sous-routine Fortran -
subroutine setpr(vstring)
character*(*) vstring
character*6 prd
prd(1:6) = vstring(1:6)
return
end
ajouter des extraits de code, afin que quelqu'un qui connaît Fortran puisse les analyser. – lothar
En effet, du code serait utile. En particulier, la déclaration de sous-programme Fortran et l'appel de C. –
ne devraient pas être SETPR ("abcdef", 7); Les chaînes C ont un ''\ 0' final. – dsm