小编Ash*_*Ash的帖子

使用“ calloc”的内存分配失败

我正在尝试使用calloc函数分配内存,但是当数组大小(类型double)为48,000 x 48,000时,它将返回NULL指针。但是,它对于23,000 x 23,000的另一种情况非常适用。从技术上讲应该没有问题,因为这台计算机上的RAM足够多。我也在使用64位库。

操作系统:Linux 64bit

安装的内存:376GB

编译器:Intel MKL 2019

编译器链接行:

icc Main.c -qopenmp -DMKL_ILP64 -m64 -I$MKLROOT/include \
    -L$MKLROOT/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread \
    -lmkl_core -liomp5 -lpthread -lm -ldl -O2 -o main.out
Run Code Online (Sandbox Code Playgroud)

这是我使用的一段代码:

int Jsize = 48000;
double *J = NULL;
J = (double *)calloc(Jsize*Jsize, sizeof(double));
if (J == NULL) printf("Null\n");
Run Code Online (Sandbox Code Playgroud)

c

-2
推荐指数
1
解决办法
55
查看次数

标签 统计

c ×1