<!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 C
library functions <
em>malloc<
/em>, <
em>realloc<
/em>, and <
em>free<
/em>.
Applications using liboop may reset these pointers to allocation and
deallocation routines with a compatible interface; libraries should use
these function pointers wherever possible to allocate and release memory.
These pointers are normally set before calling any liboop
code; if they
are changed during operation, the new <
em>oop_free<
/em> and
<
em>oop_realloc<
/em> functions should be
capable 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 returns
a 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 new
length <
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 NULL
is 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 may
be 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_realloc
is only available in
version 0.7 or newer.<
/p>
<
hr><
a href="ref">liboop reference<
/a><
/body><
/html>