日期:2014-05-16  浏览次数:20650 次

全局结构体变量和全局结构体指针变量
背景:一个程序定义了一个大的全局结构体,来保存全局信息;
定义方式有2种:
1、定义一个全局结构体变量;(程序运行之前,它就存在了)
2、定义一个全局结构体变量指针,然后在函数中malloc空间;(存在堆中)
这两种方式有什么不一样吗?
在空间和时间上有区别吗???
求大牛指导!
------解决方案--------------------
引用:
楼上讲的很对,如果存在许多大的结构的话,使用栈会导致程序崩溃而无法正常运行,这时就需要把它们分配到堆上。

都说了是全局结构了,怎么会在栈上分配呢?是在数据段了。

引用:
背景:一个程序定义了一个大的全局结构体,来保存全局信息;
定义方式有2种:
1、定义一个全局结构体变量;(程序运行之前,它就存在了)
2、定义一个全局结构体变量指针,然后在函数中malloc空间;(存在堆中)
这两种方式有什么不一样吗?
在空间和时间上有区别吗???
求大牛指导!

如果固定大小,两种方式应该没有什么区别。
如果需要在启动时根据参数等调整大小,考虑用malloc