고정 길이 문자열에 가변 길이 문자열 할당

마이클 앤더슨

일부 C 코드를 Fortran에 연결하려고합니다. 그러나 C API에서 반환 한 가변 길이 C 문자열을 Fortran API에 필요한 고정 길이 문자열로 가져 오는 데 문제가 있습니다.

컴파일되지 않는 코드의 축소 버전이 The shapes of the array expressions do not conform있습니다.

character*200 function getValueFromC() 
  use cbridge
  implicit none

  type(c_ptr) :: resultString
  integer(kind=c_int) :: resultLength
  character, pointer, dimension(:) :: string

  call c_bridge_getValue(bridge, resultString, resultLength)
  call c_f_pointer(resultString, string, (/ resultLength /) )
  getValueFromC = string
  call c_bridge_releaseString(resultString)
end function getValueFromC

cbridgec_bridge_getValue()c_bridge_releaseString정의를 포함하는 모듈 bridge포인터 ( void*)

c_bridge_getValue()단지 malloc새로운 문자열을 S와 그것을 반환하고 c_bridge_releaseString() free메모리이야.

그래서 제 질문은 string변수를 에 할당하려면 어떻게해야 getValueFromC합니까?

마이클 앤더슨

한 가지 해결책은 반복해서 문자열 조각에 할당하는 것입니다. 나는 이것이 100 % 옳다는 것을 확인하지 않았지만 나를 위해 컴파일됩니다 ...

character*200 function getValueFromC() 
  use cbridge
  implicit none

  type(c_ptr) :: resultString
  integer(kind=c_int) :: resultLength
  character, pointer, dimension(:) :: string

  call c_bridge_getValue(bridge, resultString, resultLength)
  call c_f_pointer(resultString, string, (/ resultLength /) )
  do i = 1, min(200, resultLength)
    getValueFromC(i:i) = string(i)
  end do
  call c_bridge_releaseString(resultString)
end function getValueFromC

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

길이가 0이고 null이 아닌 문자열을 할당하는 방법

분류에서Dev

문자 배열에서 변환 할 때 문자열 길이

분류에서Dev

정수에 문자열 길이 할당 : C ++

분류에서Dev

동적 문자열 Vb.net에서 고정 길이의 문자열 분할

분류에서Dev

길이가 다른 문자열 분할

분류에서Dev

C ++ 문자열에 문자를 할당하면 문자열 길이가 0 인 이유는 무엇입니까?

분류에서Dev

길이가 정의 된 공백으로 문자열 분할

분류에서Dev

고정 길이 열을 포함하는 문자열 분할

분류에서Dev

고정 길이 숫자로 문자열 분할

분류에서Dev

고정 길이 문자열에서 0으로 채워진 가변 길이 그룹 캡처

분류에서Dev

문자열의 고정 길이

분류에서Dev

고정 길이가있는 문자열 개체 C #

분류에서Dev

길이에 따라 문자열 분할

분류에서Dev

C에서 문자열 길이 평가

분류에서Dev

고정 길이 문자열에 대한 Lookahead가있는 정규식

분류에서Dev

길이가 같은 문자열에 대한 정렬 알고리즘 C ++

분류에서Dev

c 인쇄하지 않고 가변 길이 int를 문자열에 연결

분류에서Dev

자바 분할 문자열 : 지정된 길이 lookbehind

분류에서Dev

사용자가 입력 한 문자열 길이보고 방법

분류에서Dev

Awk-- 문자열을 길이가 n 인 하위 문자열로 분할

분류에서Dev

두 문자 사이의 가변 길이 부분 문자열

분류에서Dev

구성 요소의 길이로 문자열 배열 할당

분류에서Dev

문자열 중간에서 가변 길이 부분 문자열 가져 오기

분류에서Dev

특정 길이의 파이썬에서 문자열과 정수 분할

분류에서Dev

iOS-NSFetchRequest : 문자열 길이 정렬

분류에서Dev

Ruby의 문자열 길이 수정

분류에서Dev

가능한 경우 문자열을 줄이고 변수에 할당

분류에서Dev

SQL Server에서 단어를 분리하지 않고 길이가 nvarchar (120) 인 문자열 분할

분류에서Dev

R의 여러 문자열 중에서 가변 길이 문자열 선택

Related 관련 기사

  1. 1

    길이가 0이고 null이 아닌 문자열을 할당하는 방법

  2. 2

    문자 배열에서 변환 할 때 문자열 길이

  3. 3

    정수에 문자열 길이 할당 : C ++

  4. 4

    동적 문자열 Vb.net에서 고정 길이의 문자열 분할

  5. 5

    길이가 다른 문자열 분할

  6. 6

    C ++ 문자열에 문자를 할당하면 문자열 길이가 0 인 이유는 무엇입니까?

  7. 7

    길이가 정의 된 공백으로 문자열 분할

  8. 8

    고정 길이 열을 포함하는 문자열 분할

  9. 9

    고정 길이 숫자로 문자열 분할

  10. 10

    고정 길이 문자열에서 0으로 채워진 가변 길이 그룹 캡처

  11. 11

    문자열의 고정 길이

  12. 12

    고정 길이가있는 문자열 개체 C #

  13. 13

    길이에 따라 문자열 분할

  14. 14

    C에서 문자열 길이 평가

  15. 15

    고정 길이 문자열에 대한 Lookahead가있는 정규식

  16. 16

    길이가 같은 문자열에 대한 정렬 알고리즘 C ++

  17. 17

    c 인쇄하지 않고 가변 길이 int를 문자열에 연결

  18. 18

    자바 분할 문자열 : 지정된 길이 lookbehind

  19. 19

    사용자가 입력 한 문자열 길이보고 방법

  20. 20

    Awk-- 문자열을 길이가 n 인 하위 문자열로 분할

  21. 21

    두 문자 사이의 가변 길이 부분 문자열

  22. 22

    구성 요소의 길이로 문자열 배열 할당

  23. 23

    문자열 중간에서 가변 길이 부분 문자열 가져 오기

  24. 24

    특정 길이의 파이썬에서 문자열과 정수 분할

  25. 25

    iOS-NSFetchRequest : 문자열 길이 정렬

  26. 26

    Ruby의 문자열 길이 수정

  27. 27

    가능한 경우 문자열을 줄이고 변수에 할당

  28. 28

    SQL Server에서 단어를 분리하지 않고 길이가 nvarchar (120) 인 문자열 분할

  29. 29

    R의 여러 문자열 중에서 가변 길이 문자열 선택

뜨겁다태그

보관