43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /* 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 <stdlib.h>
 | |
| #include <stdio.h>
 | |
| 
 | |
| #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;
 | |
| }
 | 
