/* ALLOC.C - Routine to allocate memory and complain if it doesn't work. */ /* Copyright (c) 1996 by Radford M. Neal * * Permission is granted for anyone to copy, use, modify, or distribute this * program and accompanying programs and documents for any purpose, provided * this copyright notice is retained and prominently displayed, along with * a note saying that the original programs are available from Radford Neal's * web page, and note is made of any changes made to the programs. The * programs and documents are distributed without any warranty, express or * implied. As the programs were written for research purposes only, they have * not been tested to the degree that would be advisable in any important * application. All use of these programs is entirely at the user's own risk. */ #include #include #include "alloc.h" /* ALLOCATE SPACE AND CHECK FOR ERROR. Calls 'calloc' to allocate space, and then displays an error message and exits if the space couldn't be found. */ void *chk_alloc ( unsigned n, /* Number of elements */ unsigned size /* Size of each element */ ) { void *p; p = calloc(n,size); if (p==0) { fprintf(stderr,"Ran out of memory (while trying to allocate %d bytes)\n", n*size); exit(1); } return p; }