【发布时间】:2015-10-30 21:05:54
【问题描述】:
我正在尝试将虚拟 head* 声明为全局变量,但 IDE 出现此错误:
initializer element is not constant
我该如何解决这个问题?
typedef struct MyNode{
struct MyNode *next;
int value;
}Node;
//Declare a global variable
Node *head = malloc(sizeof(Node));
head->next = NULL;
【问题讨论】:
-
取而代之的是让假人成为
Node head; head.next = NULL;,然后在代码之前使用head的地方使用&head。 -
IDE 不会发出此类错误。这是什么编译器?
-
请说明您的限制和要求是什么。显而易见的事情就是将
head变量声明为全局变量,然后在函数中进行初始化。 -
@kaylum,但是怎么做?如何将头变量声明为全局变量,然后在函数中进行初始化?
-
是的,
head可以初始化为NULL,因为NULL是一个(扩展为)常量表达式的宏。
标签: c