Blame | Last modification | View Log | RSS feed
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>liboop: oop_malloc(), oop_free()</title><link rel="stylesheet" type="text/css" href="style.css"></head><body><h2>oop_malloc(), oop_free()</h2><pre>#include <oop.h>extern void *(*oop_malloc)(size_t len); /* <em>Allocate memory.</em> */extern void *(*oop_realloc<a href="#note-realloc">*</a>)(void *ptr,size_t len); /* <em>Resize memory.</em> */extern void (*oop_free)(void *ptr); /* <em>Free allocated memory.</em> */</pre><h3>Arguments.</h3><dl><dt><b>size_t len</b><dd>Size, in bytes, of the memory block to allocate.<p><dt><b>void *ptr</b><dd>Pointer to memory block to free or reallocate.<p></dl><h3>Description.</h3>These are global function pointers, initialized by default to the standard Clibrary functions <em>malloc</em>, <em>realloc</em>, and <em>free</em>.Applications using liboop may reset these pointers to allocation anddeallocation routines with a compatible interface; libraries should usethese function pointers wherever possible to allocate and release memory.These pointers are normally set before calling any liboop code; if theyare changed during operation, the new <em>oop_free</em> and<em>oop_realloc</em> functions should becapable of handling memory obtained with the old <em>oop_malloc</em>.<dl><dt><b>oop_malloc</b><dd>This function allocates a block of memory of size <em>len</em> and returnsa pointer to the start of the block. If allocation fails, NULL is returned.<p><dt><b>oop_realloc</b><a href="#note-realloc">*</a><dd>This function resizes a block of memory at <em>ptr</em> to have the newlength <em>len</em>. If <em>ptr</em> is NULL, fresh memory is allocated.If <em>len</em> is zero, memory is freed and NULL is returned.If <em>ptr</em> is NULL and <em>len</em> is zero, nothing is done and NULLis returned. If reallocation fails, NULL is returned.<p><dt><b>oop_free</b><dd>This function releases a block of memory, designated by <em>ptr</em>,previously allocated by <em>oop_malloc</em>. Once released, the memory maybe immediately overwritten, and/or reused by subsequent calls to<em>oop_malloc</em>.</dl><hr><p><a name="note-realloc">*</a> <b>Compatibility note:</b> oop_reallocis only available in version 0.7 or newer.</p><hr><a href="ref">liboop reference</a></body></html>