Page tree

The license could not be verified: License Certificate has expired!

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

 

JAVA

FORTRAN

C++

C

 

Link

H5_RESIZE_MEMORY

Resizes and if required, re-allocates memory that will later be freed by the HDF5 library.

Procedure:

H5_RESIZE_MEMORY(mem, size)

Signature:

void *H5resize_memory( void *mem, size_t size )

void *H5resize_memory( void *mem, size_t size )

Parameters:
void *mem IN: Pointer to a buffer to be resized. 
May be NULL.
size_t size IN: New size of the buffer, in bytes.

Description:

H5resize_memory takes a pointer to an existing buffer and resizes the buffer to match the value in size. If necessary, the buffer is reallocated. If size is 0, the buffer is released.

The input buffer must either be NULL or have been allocated by H5allocate_memory since the input buffer may be freed by the library.

For certain behaviors, the pointer mem may be passed in as NULL.

This function is intended to have the semantics of realloc():

    H5resize_memory(buffer, size)   Resizes buffer. 
Returns pointer to resized buffer.
    H5resize_memory(NULL, size)Allocates memory using HDF5 Library allocator. 
Returns pointer to new buffer.
    H5resize_memory(buffer, 0)Frees memory using HDF5 Library allocator. 
Returns NULL.
    H5resize_memory(NULL, 0)Returns NULL (undefined in C standard).

 

Unlike realloc(), which allows for a “special” pointer to be returned instead of NULL, this function always returns NULL on failure or when size is 0 (zero).

At this time, the only intended use for this function is to resize or reallocate memory that will be returned to the library (and eventually to the user) as a data buffer from a third-party HDF5 filter.

Returns:

On success, returns pointer to resized or reallocated buffer or returns NULL if size is 0 (zero). 
Returns NULL on failure.

Example:

examples / h5_subset.c [32:42]  1.10/master  HDFFV/hdf5
int
main (void)
{
    hsize_t     dims[2], dimsm[2];   
    int         data[DIM0][DIM1];           /* data to write */
    int         sdata[DIM0_SUB][DIM1_SUB];  /* subset to write */
    int         rdata[DIM0][DIM1];          /* buffer for read */
 
    hid_t       file_id, dataset_id;        /* handles */
    hid_t       dataspace_id, memspace_id; 

     PROGRAM COMPOUNDEXAMPLE

     USE HDF5 ! This module contains all necessary modules

     IMPLICIT NONE

     CHARACTER(LEN=11), PARAMETER :: filename = "compound.h5" ! File name
     CHARACTER(LEN=8), PARAMETER :: dsetname = "Compound"     ! Dataset name
     INTEGER, PARAMETER :: dimsize = 6 ! Size of the dataset

     INTEGER(HID_T) :: file_id       ! File identifier

c++ / examples / create.cpp [33:43]  1.10/master  HDFFV/hdf5
int main (void)
{
   /*
    * Data initialization.
    */
   int i, j;
   int data[NX][NY];          // buffer for data to write
   for (j = 0; j < NX; j++)
   {
      for (i = 0; i < NY; i++)

public class H5Ex_D_Chunk {
    private static String FILENAME = "H5Ex_D_Chunk.h5";
    private static String DATASETNAME = "DS1";
    private static final int DIM_X = 6;
    private static final int DIM_Y = 8;
    private static final int CHUNK_X = 4;
    private static final int CHUNK_Y = 4;
    private static final int RANK = 2;
    private static final int NDIMS = 2;

History:
Release    Change
1.8.15C function introduced with this release.

--- Last Modified: November 16, 2017 | 07:12 AM