alloc.c File Reference

GIS Library - Memory allocation routines. More...

#include <stdlib.h>
#include <grass/gis.h>
#include <grass/glocale.h>

Include dependency graph for alloc.c:

Go to the source code of this file.

Functions

void * G__malloc (const char *file, int line, size_t n)
 Memory allocation.
void * G__calloc (const char *file, int line, size_t m, size_t n)
 Memory allocation.
void * G__realloc (const char *file, int line, void *buf, size_t n)
 Memory reallocation.
void G_free (void *buf)
 Free allocated memory.


Detailed Description

GIS Library - Memory allocation routines.

(C) 2001-2008 by the GRASS Development Team

This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Author:
GRASS GIS Development Team
Date:
1999-2008

Definition in file alloc.c.


Function Documentation

void* G__calloc ( const char *  file,
int  line,
size_t  m,
size_t  n 
)

Memory allocation.

Allocates a properly aligned block of memory n*m bytes in length, initializes the allocated memory to zero, and returns a pointer to the allocated block of memory.
Dies with error message on memory allocation fail.
Note: Allocating memory for reading and writing raster maps is discussed in Allocating_Raster_I_O_Buffers.

Parameters:
[in] n number of elements
[in] m element size
Returns:
void *

Definition at line 65 of file alloc.c.

References G_fatal_error().

void* G__malloc ( const char *  file,
int  line,
size_t  n 
)

Memory allocation.

Allocates a block of memory at least n bytes which is aligned properly for all data types. A pointer to the aligned block is returned.
Dies with error message on memory allocation fail.

Parameters:
[in] n 
Returns:
void *

Definition at line 34 of file alloc.c.

References G_fatal_error().

void* G__realloc ( const char *  file,
int  line,
void *  buf,
size_t  n 
)

Memory reallocation.

Changes the size of a previously allocated block of memory at ptr and returns a pointer to the new block of memory. The size may be larger or smaller than the original size. If the original block cannot be extended "in place", then a new block is allocated and the original block copied to the new block.
Note: If buf is NULL, then this routine simply allocates a block of n bytes else buf must point to memory that has been dynamically allocated by G_malloc(), G_calloc(), G_realloc(), malloc(3), alloc(3), or realloc(3).. This routine works around broken realloc( ) routines, which do not handle a NULL buf.

Parameters:
[in,out] buf buffer holding original data
[in] n array size
Returns:
void *

Definition at line 103 of file alloc.c.

References G_fatal_error().

void G_free ( void *  buf  ) 


Generated on Thu Jul 16 13:20:40 2009 for GRASS Programmer's Manual by  doxygen 1.5.6