【发布时间】:2017-07-13 12:38:08
【问题描述】:
我有一个问题,为什么我们不能在 C 中运行之前定义结构的成员。我有以下结构设置并准备好了:
struct GSM{
char* status;
char* make;
char* accept;
char* connect;
char* exit;
};
struct GSM GSM_comms = NULL;
现在我知道我不能在 main() 之外定义这个结构的成员。但是我真的很想知道为什么。
是不是因为struct需要在栈上分配,并指向堆上的变量数据?
编辑:
例如,我不能这样做:
struct GSM{
char* status;
char* outbound;
char* inbound;
char* exit;
};
struct GSM GSM_comms;
GSM_comms.status = &variable;
int main(){
}
【问题讨论】:
-
现在我知道我不能在
main()之外定义这个结构的成员,这根本不是真的,并且缺乏上下文来了解你的真正意思。 -
I cannot define members of this struct outside of main()....等等...什么?你刚刚做了什么? -
我认为您要查找的词是 initialize。只要你说
struct x { ... };,成员就会定义 -
这个问题不清楚。请澄清你的意思?。
-
@JonathonReinhart 你可以初始化。你不能使用作业。
标签: c struct memory-management heap-memory stack-memory