# TIFFmemory

## Synopsis

    #include <tiffio.h>

tdata_t _TIFFmalloc(tsize_t size)

tdata_t _TIFFrealloc(tdata_t buffer, tsize_t size)

void _TIFFfree(tdata_t buffer)

void _TIFFmemset(tdata_t s, int c, tsize_t n)

void _TIFFmemcpy(tdata_t dest, const tdata_t src, tsize_t n)

int _TIFFmemcmp(const tdata_t s1, const tdata_ts2, tsize_t n)

void *_TIFFCheckMalloc(TIFF *tif, tmsize_t nmemb, tmsize_t elem_size, const char *what)

void *_TIFFCheckRealloc(TIFF *tif, void *buffer, tmsize_t nmemb, tmsize_t elem_size, const char *what)

## Description

These routines are provided for writing portable software that uses libtiff; they hide any memory-management related issues, such as dealing with segmented architectures found on 16-bit machines.

`_TIFFmalloc()` and `_TIFFrealloc()` are used to dynamically allocate and reallocate memory used by libtiff; such as memory passed into the I/O routines. Memory allocated through these interfaces is released back to the system using the `_TIFFfree()` routine.

Memory allocated through one of the above interfaces can be set to a known value using `_TIFFmemset()`, copied to another memory location using `_TIFFmemcpy()`, or compared for equality using `_TIFFmemcmp()`. These routines conform to the equivalent C routines: `memset()`, `memcpy()`, `memcmp()`, respectively.

`_TIFFCheckMalloc()` and `_TIFFCheckRealloc()` are checking for integer overflow before calling `_TIFFmalloc()` and `_TIFFrealloc()`, respectively.

## Diagnostics

None.

## See also

malloc (3), memory (3), libtiff (3tiff)