Changeset 13451
- Timestamp:
- 09/26/12 15:30:13 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/shared/Alloc/xNewDelete.h
r13327 r13451 13 13 // C++ style memory management 14 14 #define USE_CXX_MEMORY_MANAGMENT_FOR_NON_POD_TYPES 15 // but for speed on may alternatively use C memory manag ment15 // but for speed on may alternatively use C memory management 16 16 // but can do so safely only for T that are at most 17 17 // plain old data structures (POD) … … 69 69 assert(aT_p); 70 70 return aT_p; 71 #endif 72 } 73 74 template <class T> 75 T** xNewZeroInit(unsigned int dim1, unsigned int dim2) { 76 #ifdef USE_CXX_MEMORY_MANAGMENT_FOR_NON_POD_TYPES 77 T** aT_pp=xNew<T>(dim1,dim2); 78 for (unsigned int i=0; i<dim1*dim2;++i) 79 *aT_pp[i]=(T)0; 80 return aT_pp; 81 #else 82 T* buf=(T*)calloc(dim1*dim2*sizeof(T)); 83 assert(buf ); 84 T** aT_pp =(T**)malloc(dim1*sizeof(T*)); 85 assert(aT_pp ); 86 for (unsigned int i=0;i<dim1;++i) { 87 aT_pp [i]=buf; 88 buf+=dim2; 89 } 90 return aT_pp ; 71 91 #endif 72 92 }
Note:
See TracChangeset
for help on using the changeset viewer.