首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

vc内存分配有关问题

2012-01-11 
vc内存分配问题为什么定义BYTEpBuffer[704*576*3]会出错,而BYTE*pBuffernewBYTE[704*576*3]就不会出错呢

vc内存分配问题
为什么定义BYTE   pBuffer[704   *   576   *   3];会出错,而BYTE*   pBuffer   =   new   BYTE[704   *   576   *   3]就不会出错呢?

[解决办法]
静态内存分配太大了,超出了编译器默认范围,可自己手动设置,使其更大
[解决办法]
超过堆栈的默认值了吧?
[解决办法]
在vc中设置栈的大小
有时,分配一个比较大的数组时,会在运行时发生错误,提示Stack overflow。原因是因为在32位系统下,堆内存可达到4G的空间,但是对于栈来说,一般空间大小有限制,在VC6下,默认的栈空间大小是1M。所以你可以用new操作符在堆上动态非配内存。如果你需要一个大的数组,同时又不想动态分配内存,可以在vc6中修改栈的大小:
project-> Settings-> link-> category中选择output-> reserve中设定栈大小,最小4Byte
不过要注意,开较大的栈会增加内存

热点排行