C_ASSOCIATED — Status of a C pointer#

C_ASSOCIATED(c_ptr_1, c_ptr_2)#

C_ASSOCIATED(c_ptr_1[, c_ptr_2]) determines the status of the C pointer c_ptr_1 or if c_ptr_1 is associated with the target c_ptr_2.

  • c_ptr_1 – Scalar of the type C_PTR or C_FUNPTR.

  • c_ptr_2 – (Optional) Scalar of the same type as c_ptr_1.


The return value is of type LOGICAL ; it is .false. if either c_ptr_1 is a C NULL pointer or if c_ptr1 and c_ptr_2 point to different addresses.


Fortran 2003 and later


Inquiry function

RESULT = C_ASSOCIATED(c_ptr_1[, c_ptr_2])
subroutine association_test(a,b)
  use iso_c_binding, only: c_associated, c_loc, c_ptr
  implicit none
  real, pointer :: a
  type(c_ptr) :: b
  if(c_associated(b, c_loc(a))) &
     stop 'b and a do not point to same target'
end subroutine association_test
See also:

C_LOC — Obtain the C address of an object, C_FUNLOC — Obtain the C address of a procedure