### Function

# GLib clear_pointer

since: 2.34

#### Declaration

    void
    g_clear_pointer (
      gpointer* pp,
      GDestroyNotify destroy
    )

#### Description

Clears a reference to a variable.

`pp` must not be `NULL`.

If the reference is `NULL` then this function does nothing. Otherwise, the variable is destroyed using `destroy` and the pointer is set to `NULL`.

A macro is also included that allows this function to be used without pointer casts. This will mask any warnings about incompatible function types or calling conventions, so you must ensure that your `destroy` function is compatible with being called as `GDestroyNotify` using the standard calling convention for the platform that GLib was compiled for; otherwise the program will experience undefined behaviour.

Available since: 2.34

This function is not directly available to language bindings.

#### Parameters

`pp`

  Type: `gpointer*`

  A pointer to a variable, struct member etc. holding a pointer.

  The argument will be modified by the function.

`destroy`

  Type: `GDestroyNotify`

  A function to which a gpointer can be passed, to destroy *`pp`.