⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alloc.c

📁 2维fft程序
💻 C
字号:
/* ---- memory allocation ---- */#include "alloc.h"#define alloc_error_check(p) { \    if ((p) == NULL) { \        fprintf(stderr, "Allocation Failure!\n"); \        exit(1); \    } \}int *alloc_1d_int(int n1){    int *i;        i = (int *) malloc(sizeof(int) * n1);    alloc_error_check(i);    return i;}void free_1d_int(int *i){    free(i);}double *alloc_1d_double(int n1){    double *d;        d = (double *) malloc(sizeof(double) * n1);    alloc_error_check(d);    return d;}void free_1d_double(double *d){    free(d);}int **alloc_2d_int(int n1, int n2){    int **ii, *i;    int j;        ii = (int **) malloc(sizeof(int *) * n1);    alloc_error_check(ii);    i = (int *) malloc(sizeof(int) * n1 * n2);    alloc_error_check(i);    ii[0] = i;    for (j = 1; j < n1; j++) {        ii[j] = ii[j - 1] + n2;    }    return ii;}void free_2d_int(int **ii){    free(ii[0]);    free(ii);}double **alloc_2d_double(int n1, int n2){    double **dd, *d;    int j;        dd = (double **) malloc(sizeof(double *) * n1);    alloc_error_check(dd);    d = (double *) malloc(sizeof(double) * n1 * n2);    alloc_error_check(d);    dd[0] = d;    for (j = 1; j < n1; j++) {        dd[j] = dd[j - 1] + n2;    }    return dd;}void free_2d_double(double **dd){    free(dd[0]);    free(dd);}int ***alloc_3d_int(int n1, int n2, int n3){    int ***iii, **ii, *i;    int j;        iii = (int ***) malloc(sizeof(int **) * n1);    alloc_error_check(iii);    ii = (int **) malloc(sizeof(int *) * n1 * n2);    alloc_error_check(ii);    iii[0] = ii;    for (j = 1; j < n1; j++) {        iii[j] = iii[j - 1] + n2;    }    i = (int *) malloc(sizeof(int) * n1 * n2 * n3);    alloc_error_check(i);    ii[0] = i;    for (j = 1; j < n1 * n2; j++) {        ii[j] = ii[j - 1] + n3;    }    return iii;}void free_3d_int(int ***iii){    free(iii[0][0]);    free(iii[0]);    free(iii);}double ***alloc_3d_double(int n1, int n2, int n3){    double ***ddd, **dd, *d;    int j;        ddd = (double ***) malloc(sizeof(double **) * n1);    alloc_error_check(ddd);    dd = (double **) malloc(sizeof(double *) * n1 * n2);    alloc_error_check(dd);    ddd[0] = dd;    for (j = 1; j < n1; j++) {        ddd[j] = ddd[j - 1] + n2;    }    d = (double *) malloc(sizeof(double) * n1 * n2 * n3);    alloc_error_check(d);    dd[0] = d;    for (j = 1; j < n1 * n2; j++) {        dd[j] = dd[j - 1] + n3;    }    return ddd;}void free_3d_double(double ***ddd){    free(ddd[0][0]);    free(ddd[0]);    free(ddd);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -