File: c_ptr_02.f90

package info (click to toggle)
lfortran 0.60.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 58,412 kB
  • sloc: cpp: 173,406; f90: 80,491; python: 17,586; ansic: 9,610; yacc: 2,356; sh: 1,401; fortran: 895; makefile: 37; javascript: 15
file content (19 lines) | stat: -rw-r--r-- 460 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program test_c_ptr_02
   use iso_c_binding
   implicit none
   complex, target :: c_arr(2)
   real, pointer :: r_ptr(:)

   type :: test_obj
      type(c_ptr) :: ptr = c_NULL_ptr
   end type test_obj
   type(test_obj) :: instance
   type(c_ptr) :: temp_ptr
   temp_ptr = instance%ptr

   c_arr = (1, 2)
   call c_f_pointer(c_loc(c_arr), r_ptr, shape=[4])
   print *, c_arr
   print *, r_ptr
   if (c_associated(temp_ptr) .neqv. .false.) error stop
end program