关于声明结构的全局变量问题

codelabs 2009-12-25 09:59:32
定义了一个结构
typedef struct
{
S8 sendNumber[2][64];
S8 sendInfo[2][64];
}phone;
在某种情况下我要生成一个该结构的全局变量:phone _phone;
如果我一开始就声明了_phone 的话好像浪费空间,因为有可能用不到它。
现在我想找个方法就是在我需要用时候再声明全局变量,不需要的时候不生成。
请问,C语言中是怎么实现的?




...全文
73 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
codelabs 2009-12-25
typedef struct
{
S8 sendNumber[2][64];
S8 sendInfo[2][64];
}phone;
phone *gp_phone=NULL;
gp_phone=(phone *)malloc(sizeof(phone));
gp_phone->sendNumber[0][0]="adfdsfdsfdf";
这样子指针会不会乱指?
还是要先申明一个结构
phone p;
gp_phone=*p;
然后再使用?
回复
苍蝇1号 2009-12-25
先申明个指针变量,需要的时候再给它分配内存
回复
Arnold9009 2009-12-25
[Quote=引用 2 楼 whg01 的回复:]
phone *gp_phone=NULL;改成指针,需要的时候malloc(sizeof(phone))分配,不需要的时候free。
[/Quote]

up
用完之后记得free
回复
hbvanguard 2009-12-25

#ifdef PHONE
typedef struct
{
S8 sendNumber[2][64];
S8 sendInfo[2][64];
}phone;
#endif
回复
whg01 2009-12-25
phone *gp_phone=NULL;改成指针,需要的时候malloc(sizeof(phone))分配,不需要的时候free。
回复
guzhijie1981 2009-12-25
不明白啥意思;
如果你是事先知道用不用;就用#ifdef来做;如果是运行才知道;那么不能用全局变量;用动态分配吧
回复
发动态
发帖子
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
社区公告
暂无公告