|
/**
|
|
* Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
|
|
*
|
|
* Licensed under the Universal Permissive License v 1.0 as shown at
|
|
* http://oss.oracle.com/licenses/upl
|
|
*
|
|
*/
|
|
#ifndef MALLOC_H
|
|
#define MALLOC_H
|
|
#include <stdlib.h>
|
|
// Suitable for doing:
|
|
// struct foo *MALLOC(v); // make something that foo can point at.
|
|
#define MALLOC(v) v = malloc(sizeof (*v))
|
|
// Suitable for doing:
|
|
// struct foo *MALLOC_N(v, 5); // make an array of 5 "struct foo"s.
|
|
#define MALLOC_N(v, n) v = malloc(sizeof(*v)*(n))
|
|
#define REALLOC(v, n) v = realloc(v, (n)*sizeof(*v))
|
|
#define FREE(v) (free(v), (v) = NULL)
|
|
#endif
|