/* ALLOC.C - Routine to allocate memory and complain if it doesn't work. */ /* Copyright (c) 1995-2012 by Radford M. Neal. * * Permission is granted for anyone to copy, use, modify, and distribute * these programs and accompanying documents for any purpose, provided * this copyright notice is retained and prominently displayed, and note * is made of any changes made to these programs. These 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; }