호출 FORTRAN하는 내가 포트란를 호출하는 C 함수, 리터럴 문자열 "XXXXXX"를 통과 (null이 아닌 종료)와 숨겨진 통과 길이 인수 6이 10.1C는 인텔 포트란과 윈도우 64에서 Visual Studio 9를 사용하여 문제
디버거가 character (6) var이고 올바른 문자열을 가지고 있기 때문에 Fortran이 올바르게 처리되지만 다른 Fortran 문자 * 6 var에 할당하려고하면 가장 이상한 오류가 발생합니다.
forrtl: severe (408): fort: (4): Variable Vstring has substring ending point 6 which is greater than the variable length 6
- C 호출 -
SETPR("abcdef",6);
- 포트란 서브 루틴 -
subroutine setpr(vstring)
character*(*) vstring
character*6 prd
prd(1:6) = vstring(1:6)
return
end
일부 코드 스니 펫을 추가하면 Fortran을 아는 사람이 분석 할 수 있습니다. – lothar
실제로 일부 코드가 도움이 될 것입니다. 특히 Fortran 서브 루틴 선언과 C. –
의 호출은 SETPR ("abcdef", 7); C 문자열은' '\ 0''을 갖는다. – dsm