您当前的位置:首页 > 计算机 > 编程开发 > C语言

连接过程中出现DGROUP:group exceeds 64K消息是怎么回事?

时间:12-30来源:作者:点击数:

如果在连接时看到这条出错消息,那是连接程序在指示数据(DGROUP)段中的近程数据(静态数组元素,全局变量等)超过了64KB。解决这个问题的办法有以下几种:

  1. 减少一些全局变量;
  2. 减少程序的栈;
  3. 用动态存储分配技术为数据元素分配动态内态,而不把它们定义为静态型或全局型;
  4. 把数据元素说明为远程型而不是近程型。

减少一些全局变量可能要求对程序的内部结构进行重新设计,但这是值得的。从本质上讲,全局变量的维护很可能是一场恶梦,因此只有在确实需要时才能使用全局变量。如果你分配了大量的空间作为栈空间,那么你应该试试减少栈空间,看看是否能增加可用的内存。如果你在程序中使用了大量静态数据,那么你应该想办法重新安排这些静态数据,并且为它们分配动态的而不是静态的内存。这种技术可以释放近程堆,并且使你能从远程堆中分配内存(见18.15中有关近程堆和远程堆的讨论)。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门