"calib/new.h"
Header.The "calib/new.h"
header contains the following macros and
functions that make allocating memory much friendly and more type-safe:
#define CALIB_NEW(T) ((T *) _calib_new (sizeof (T))) #define CALIB_NEWA(N,T) ((T *) _calib_new ((N) * sizeof (T))) #define CALIB_FREE(p) \ do { if ((p) NE NULL) { free ((void *) (p)); } } while (FALSE) extern void * _calib_new (size_t nbytes);
CALIB_NEW(T)
dynamically allocates a single (uninitialized)
object of type T
.
CALIB_NEWA(N, T)
dynamically allocates an array (uninitialized)
of N
objects of type T
.
CALIB_FREE(p)
checks for NULL
before calling
free()
.
The _calib_new
function catches the out-of-memory condition (by
printing an error message and calling exit(1)
).