日期:2014-05-17  浏览次数:20731 次

Windows程序中,数据过多时的栈溢出问题与堆内存的使用
        在Windows中,一个线程的栈空间的默认大小是1MB,对于MFC UI主线程,一般其栈空间的大小均为1MB,当UI主线程的数据较大时就可能会造成栈溢出,从而导致程序出现异常。那么出现栈溢出该如何解决呢?可以通过使用堆内存来消除这样的问题,即很多时候都用new来的堆内存。对于类数据,则直接使用new来的对象来存储。系统会给每个程序分配一个4GB的虚拟空间,其中包括存放代码的空间,以及存放数据的空间。正常情况下,这样的内存已经足够程序使用了。所以,对于大型UI程序,要将栈内存和堆内存有效的结合起来,这样才能保证程序的正常运行与使用。