哪些可能的情况可以使以下代码执行if
以下代码段中的条件?就我而言,我无法说明该if
语句执行的任何原因。
#include <stdio.h>
#include <stdlib.h>
void main(void){
int Nod = 1024 * 8; //Nod contains the number of nodes
double *MM; //MM is a square matrix it can contain very large number of data 10^10
MM = calloc(8 * Nod * 8 * Nod, sizeof(double));
if (MM == NULL)exit(0);
//then MM will then be passed to some other functions say
eigenvalue(MM);}
我正在使用在一个非常大的程序中间进行此检查的 FEM 代码。有趣的事实是,当我运行代码时,它会显示异常行为。有时程序就在这里停止。有时它工作得很好。值得一提的是,当程序以粗网格运行时,即当Nod
要计算的节点数量较少时,程序运行良好。但是当使用精细的网格时,不幸的是程序崩溃了。该程序在具有 128GB 内存的迷你工作站中运行。该程序占用 1GB(左右)的 RAM。