在结构中调用malloc

在结构中调用malloc,c,C,您需要按以下方式调用malloc: struct NODE node[5000*5000]; struct NODE node2[5000*5000]; 其余代码将保持不变。malloc(5000*5000*sizeof(struct NODE))请注意,在某些系统上,如果您不想特别动态地分配存储,那么在main中编写代码会崩溃,您可以通过将变量声明移动到main之前的静态数据区域来避免堆栈大小限制。您使用的数据结构非常庞大。一般来说,这意味着您的算法有问题。sizeof(node)=

您需要按以下方式调用
malloc

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

其余代码将保持不变。

malloc(5000*5000*sizeof(struct NODE))请注意,在某些系统上,如果您不想特别动态地分配存储,那么在main中编写代码会崩溃,您可以通过将变量声明移动到
main
之前的静态数据区域来避免堆栈大小限制。您使用的数据结构非常庞大。一般来说,这意味着您的算法有问题。
sizeof(node)
==>
sizeof(*node)
node=malloc(5000*5000*sizeof(*node))。您需要的是结构的大小,而不是指针。如果node2分配失败,请释放node1指针。习惯好习惯需要时间
struct NODE node[5000*5000];    
struct NODE node2[5000*5000];
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 
}