Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //xmalloc example
- //
- void *
- xmalloc (size_t size)
- {
- void *value = malloc (size);
- if (value == 0)
- fatal ("virtual memory exhausted");
- return value;
- }
- // example of using malloc
- //
- char *
- savestring (const char *ptr, size_t len)
- {
- char *value = (char *) xmalloc (len + 1);
- value[len] = '\0';
- return (char *) memcpy (value, ptr, len);
- // example freeing all the blocks in a chain
- //
- struct chain
- {
- struct chain *next;
- char *name;
- }
- void
- free_chain (struct chain *chain)
- {
- while (chain != 0)
- {
- struct chain *next = chain->next;
- free (chain->name);
- free (chain);
- chain = next;
- }
- }
- // xrealloc example
- // see www.gnu.org/libc/manual/
- //
- void *
- xrealloc (void *ptr, size_t size)
- {
- void *value = realloc (ptr, size);
- if (value == 0)
- fatal ("Virtual memor exhausted");
- return value;
- }
- // allocating cleared space
- //
- void *
- calloc (size_t count, size_t, eltsiz)
- {
- size_t size = count * eltsize;
- void *value = malloc (size);
- if (value != 0)
- memset (value, 0, size);
- return value;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement