声明局部变量栈溢出

kosuke 2010-10-19 03:32:36
我用C写dll,在一个函数里这样写:
char content[2048000];
运行时就直接出错:
Unhandled exception at 0x1000b6b7 (xxx.dll) in test.exe: 0xC00000FD: Stack overflow.
改成char content[204800]就好了,我的问题是:

1.栈怎么会这么小
2.怎么知道栈的大小

我用的VC2005, XP
...全文
254 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengzhixi 2010-10-19
  • 打赏
  • 举报
回复
编译器可以设置的。太大就用堆内存或者声明为全局或者静态的都可以
wd2smile 2010-10-19
  • 打赏
  • 举报
回复
new吧!!太大了 ,不适合用栈的!
lifreshman 2010-10-19
  • 打赏
  • 举报
回复
怎么用c、c++写dll啊
luciferisnotsatan 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fudy 的回复:]

2048000才2M,说不上太大吧。那怎么调大一些

引用 2 楼 yueyinggufan 的回复:
VC 6.0 默认函数栈是1M 这个可以调大的 但是2048000 太大了 估计在调也没用
[/Quote]

不改的话,默认栈大小就是1M
luciferisnotsatan 2010-10-19
  • 打赏
  • 举报
回复
vc2005里在工程属性的linker->system里设置。
bobo364 2010-10-19
  • 打赏
  • 举报
回复
VC 6.0 默认函数栈是1M 这个可以调大的 但是2048000 太大了 估计在调也没用

我也认为是这样
kosuke 2010-10-19
  • 打赏
  • 举报
回复
2048000才2M,说不上太大吧。那怎么调大一些

[Quote=引用 2 楼 yueyinggufan 的回复:]
VC 6.0 默认函数栈是1M 这个可以调大的 但是2048000 太大了 估计在调也没用
[/Quote]
yueyinggufan 2010-10-19
  • 打赏
  • 举报
回复
栈里面一般放的数据都是临时变量 怎么要这么大的数组
yueyinggufan 2010-10-19
  • 打赏
  • 举报
回复
VC 6.0 默认函数栈是1M 这个可以调大的 但是2048000 太大了 估计在调也没用
小魔菇 2010-10-19
  • 打赏
  • 举报
回复
不是栈小 是你的变量太大了
windows下不知道
linux下是
ulimit -a
stack size (kbytes, -s) 10240

69,322

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧