|
|
1.1 ! root 1: /* ! 2: * storage allocator ! 3: * ! 4: * calls malloc or realloc and aborts if unsuccessful ! 5: */ ! 6: ! 7: #include "asd.h" ! 8: #include <stdio.h> ! 9: #include <stdlib.h> ! 10: #include <string.h> ! 11: ! 12: void * ! 13: alloc (size_t n) ! 14: { ! 15: register void *p; ! 16: ! 17: p = malloc (n); ! 18: schk (p); ! 19: return p; ! 20: } ! 21: ! 22: void * ! 23: ralloc (void *s, size_t n) ! 24: { ! 25: register void *p; ! 26: ! 27: if (s == NULL) ! 28: return alloc (n); ! 29: ! 30: p = realloc (s, n); ! 31: schk (p); ! 32: return p; ! 33: } ! 34: ! 35: /* return a copy of a string */ ! 36: char * ! 37: copy (char *s) ! 38: { ! 39: register char *r; ! 40: r = alloc (strlen (s) + 1); ! 41: strcpy (r, s); ! 42: return r; ! 43: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.