ConicBundle
Classes | Functions
Classes and Functions for Memory Management

implements a simple approach to support frequent allocation and deallocation of arrays of the same sizes. More...

Classes

class  CH_Matrix_Classes::Memarray
 A simple memory manager for frequent allocation and deallocation of arrays of roughly the same size. More...
 
class  CH_Matrix_Classes::Memarrayuser
 All derived classes share a common Memarray memory manager, which is generated with the first user and destructed when the last user is destructed. More...
 

Functions

template<class T >
int CH_Matrix_Classes::mem_provide (Memarray &memarray, long provide, long in_use, long &avail, T *&store)
 provide sufficient memory for an existing array, reallocating and copying the old information upon need, returns 0 upon success, !=0 upon failure. More...
 
template<class T >
int CH_Matrix_Classes::mem_provide_init0 (Memarray &memarray, long provide, long &avail, T *&store)
 provide sufficient memory for an existing array, reallocating and copying the old information and initializing the new entries to 0, returns 0 upon success, !=0 upon failure. More...
 

Detailed Description

implements a simple approach to support frequent allocation and deallocation of arrays of the same sizes.

Function Documentation

◆ mem_provide()

template<class T >
int CH_Matrix_Classes::mem_provide ( Memarray memarray,
long  provide,
long  in_use,
long &  avail,
T *&  store 
)
inline

provide sufficient memory for an existing array, reallocating and copying the old information upon need, returns 0 upon success, !=0 upon failure.

Parameters
memarraythe Memory Manger which provided the address in store
providethe minimum number of entries needed
in_usethe number of entries currently in use
availthe number of entries currently available and available afterwards
storethe current address and the ouput address of the starting element

References CH_Matrix_Classes::Memarray::free(), CH_Matrix_Classes::Memarray::get(), and CH_Matrix_Classes::Memarray::in_use.

◆ mem_provide_init0()

template<class T >
int CH_Matrix_Classes::mem_provide_init0 ( Memarray memarray,
long  provide,
long &  avail,
T *&  store 
)
inline

provide sufficient memory for an existing array, reallocating and copying the old information and initializing the new entries to 0, returns 0 upon success, !=0 upon failure.

Parameters
memarraythe Memory Manger which provided the address in store
providethe minimum number of entries needed
availthe number of entries currently available and available afterwards
storethe current address and the ouput address of the starting element

References CH_Matrix_Classes::Memarray::free(), and CH_Matrix_Classes::Memarray::get().