]> git.donarmstrong.com Git - biopieces.git/blob - code_c/Maasha/src/inc/mem.h
08c976d8be9d71646269a8fe694ad5ee553c0db1
[biopieces.git] / code_c / Maasha / src / inc / mem.h
1 /* Macro for dynamic allocation of memory. */
2 #define MEM_GET( pt ) ( pt = mem_get( sizeof( *pt ) ) ) 
3
4 /* Macro for resetting a pointer to all \0's. */
5 #define MEM_ZERO( pt ) ( memset( pt, '\0', sizeof( *pt ) ) )
6
7 /* Macro for cloning a structure in memroy. */
8 #define MEM_CLONE( pt ) mem_clone( pt, sizeof( ( pt )[ 0 ] ) )
9
10 /* Get a pointer with a given size of allocated memory. */
11 void *mem_get( size_t size );
12
13 /* Get a pointer with a given size of allocated and zero'ed memory. */
14 void *mem_get_zero( size_t size );
15
16 /* Resize allocated memory for a given pointer. */
17 void *mem_resize( void* pt, size_t size );
18
19 /* Resize allocated memory for a given pointer with extra memory zero'ed. */    
20 void *mem_resize_zero( void* pt, size_t old_size, size_t new_size );
21
22 /* Clone a structure in memory and return a pointer to the clone. */
23 void *mem_clone( void *old_pt, size_t size );
24
25 /* Free memory from a given pointer. */
26 void  mem_free( void *pt );
27
28 /* Zero and then free memory from a given pointer. */
29 void  mem_free_zero( void *pt );