33void **
malloc_2d(
const size_t rows,
const size_t cols,
const size_t T)
35 void *data= (
void *) malloc(rows*cols*T);
36 void **ar = (
void **)malloc(rows*
sizeof(
void*));
38 char *p = (
char*)data;
39 for (i=0; i<rows; i++)
40 ar[i] = &(p[cols*i*T]);
52void ***
malloc_3d(
const size_t rows,
const size_t cols,
const size_t depth,
const size_t T)
54 void *data = (
void *) malloc(rows*cols*depth*T);
55 void **ar2 = (
void **)malloc(rows*cols*
sizeof(
void*));
56 void ***ar = (
void ***)malloc(rows*
sizeof(
void**));
58 char *p = (
char*)data;
59 for (i=0; i<rows; i++){
60 for (j=0; j<cols; j++){
61 ar2[cols*i+j] = &(p[(cols*i+j)*depth*T]);
63 ar[i] = &(ar2[cols*i]);
69void ****
malloc_4d(
const size_t rows,
const size_t cols,
const size_t depth,
const size_t dims,
const size_t T) {
70 void *data = (
void *) malloc(rows*cols*depth*dims*T);
71 void **ar3 = (
void **)malloc(rows*cols*depth*
sizeof(
void*));
72 void ***ar2 = (
void ***)malloc(rows*cols*
sizeof(
void**));
73 void ****ar = (
void ****)malloc(rows*
sizeof(
void ***));
75 char *p = (
char*)data;
76 for (i=0; i<rows; i++){
77 for (j=0; j<cols; j++){
78 for (k=0; k<depth; k++){
79 ar3[(i*cols+j)*depth+k] = &p[((i*cols+j)*depth+k)*dims*T];
81 ar2[i*cols+j] = &ar3[(i*cols+j)*depth];
void dealloc_2d(void **mat)
Deallocate 2D array.
void ** malloc_2d(const size_t rows, const size_t cols, const size_t T)
Allocate 2D array.
void *** malloc_3d(const size_t rows, const size_t cols, const size_t depth, const size_t T)
Allocate 3D array.
void **** malloc_4d(const size_t rows, const size_t cols, const size_t depth, const size_t dims, const size_t T)
void dealloc_4d(void ****mat)
void dealloc_3d(void ***mat)
Deallocate 3D array.