C API로 확인된 스토리지를 Fortran 으로 정렬
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
int* myalloc() {
int* ptr = (int*) malloc(4 * sizeof(int));
ptr[0] = 1;
ptr[1] = 2;
ptr[2] = 3;
ptr[3] = 4;
return ptr;
}
예를 들어 이렇게 myalloc
확보된 메모리를Fortran에서 그룹으로 사용할 때 다음과 같다.program f1
use iso_c_binding
interface
function myalloc() bind(c)
import c_ptr
type(c_ptr) myalloc
end function
end interface
type(c_ptr) addr
integer, pointer :: array(:)
addr = myalloc()
call c_f_pointer(addr, array, [4])
print *, array ! [1, 2, 3, 4]
end
c_f_pointer
는 type(c_ptr)
의 주소 값을Fortran의 바늘로 변환하는 함수입니다.세 번째 매개 변수에서 배열된 shape를 사용할 수 있습니다.참고 자료
Reference
이 문제에 관하여(C API로 확인된 스토리지를 Fortran 으로 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/termoshtt/articles/fortran-pointer-as-array텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)