Code:regarding header : memorytest.h
/*#ifndef MEMORYTEST_H
#define MEMORYTEST_H
#include <stdlib.h>
template <class type1, class type2>
void allocateData1DbyMalloc(type1** data1D, type2 nRow) {
int size = (char*) &(*data1D)[1] - (char*) & (*data1D)[0];
*data1D = (type1*)malloc(nRow * size); // sizeof(type1));
}
template <class type1>
void deAllocateData1DbyFree(type1** data1D) {
free(*data1D);
}
template <class type1, class type2>
void allocateData2DbyMalloc(type1*** data2D, type2 nRow, type2 nColumn) {
int size = (char*) & (*data2D)[1] - (char*) & (*data2D)[0];
*data2D = (type1 * *)malloc(size * nRow); // sizeof(type1*)
if (*data2D) {
size = (char*) & (**data2D)[1] - (char*) & (**data2D)[0];
for (int i = 0; i < nRow; i++) {
(*data2D)[i] = (type1*)malloc(size * nColumn); // sizeof(type1)
}
}
}
template <class type1, class type2>
void destroyMatrix2DbyFree(type1*** data2D, type2 numberOfRow) {
for (int row = 0; row < numberOfRow - 1; row++)
free((*data2D)[row]);
free(*data2D);
}
#endif