GRASS Programmer's Manual  6.4.1(2011)
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]nnumber of elements
[in]melement 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]bufbuffer holding original data
[in]narray size
Returns:
void *

Definition at line 103 of file alloc.c.

References G_fatal_error().

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines