在结构中调用malloc

时间:2017-10-05 10:24:39

标签: c

struct NODE{
double theta, phi;
int ID;
int pointer;
};

int main(void)
{
FILE *fp;           

int  ID[5000][5000];
struct NODE node[5000*5000];    
struct NODE node2[5000*5000];
int elem[5000][8];      
int tempID;
for(i=0; i< 5000*5000; i++){
    node[i].theta = 0;
    node[i].phi   = 0;
}
for(k=0; k<5000; k++){
    for(j=0; j< 5000; j++){
        ID[k][j] = -1;
    }
}
}

这是我项目源代码的一部分。在这里,我想使用malloc在这一行中分配内存。我怎么能这样做?

struct NODE node[5000*5000];    
struct NODE node2[5000*5000];

1 个答案:

答案 0 :(得分:1)

您需要按以下方式致电malloc

struct NODE *node, *node2;
node = malloc(5000*5000*sizeof(*node));
if (node == NULL)
{
   exit(1);  // or any other error check 
}
node2 = malloc(5000*5000*sizeof(*node));
if (node2 == NULL)
{
   exit(1);  // or any other error check 
}

其余代码将保持不变。