Help us improve by taking our short survey: https://www.hdfgroup.org/website-survey/

| HDF5 Last Updated on 2026-07-28 The HDF5 Field Guide

Loading...
Searching...
No Matches
Variable-length Sequence Datatypes
Datatypes (H5T)

## Detailed Description

## Functions
herr_t | H5Treclaim (hid_t type_id, hid_t space_id, hid_t plist_id, void *buf)
| Reclaims the variable length (VL) datatype memory buffers.
hid_t | H5Tvlen_create (hid_t base_id)
| Creates a new variable-length array datatype.

## Function Documentation

## ◆ H5Treclaim()

herr_t H5Treclaim | ( | hid_t | type_id,
|  | hid_t | space_id,
|  | hid_t | plist_id,
|  | void * | buf )

Reclaims the variable length (VL) datatype memory buffers.

Parameters

  [in] | type_id | Datatype identifier
  [in] | space_id | Dataspace identifier
  [in] | plist_id | Dataset transfer property list identifier used to create the buffer
  [in] | buf | Pointer to the buffer to be reclaimed

Returns
  Returns a non-negative value if successful; otherwise, returns a negative value.

H5Treclaim() reclaims memory buffers created to store VL datatypes. It only frees the variable length data in the selection defined in the dataspace specified by `space_id`. The dataset transfer property list `plist_id` is required to find the correct allocation and/or free methods for the variable-length data in the buffer.

Since
  1.12.0

## ◆ H5Tvlen_create()

hid_t H5Tvlen_create | ( | hid_t | base_id | ) |

Creates a new variable-length array datatype.

Parameters

  [in] | base_id | Datatype identifier, the element type of the datatype to create

Returns
  Returns a variable-length datatype identifier if successful; otherwise returns H5I_INVALID_HID.

H5Tvlen_create() creates a new one-dimensional array datatype of variable-length (VL) with the base datatype `base_id`.

This one-dimensional array often represents a data sequence of the base datatype, such as characters for character sequences or vertex coordinates for polygon lists. The base type specified for the VL datatype can be any HDF5 datatype, including another VL datatype, a compound datatype, or an atomic datatype.

When necessary, use H5Tget_super() to determine the base type of the VL datatype.

The datatype identifier returned from this function should be released with H5Tclose() or resource leaks will result. Under certain circumstances, H5Dvlen_reclaim() must also be used.

Attention
  H5Tvlen_create() cannot be used to create a variable-length string datatype. H5Tvlen_create() called with a string or character base type creates a variable-length sequence of strings (a variable-length, 1-dimensional array), with each element of the array being of the string or character base type.
  To create a variable-length string datatype, see Creating variable-length string datatypes.

Since
  1.2.0