社区
C语言
帖子详情
声明局部变量栈溢出
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
打赏
收藏
声明局部变量栈溢出
我用C写dll,在一个函数里这样写: char content[2048000]; 运行时就直接出错: Unhandled exception at 0x1000b6b7 (xxx.dll) in test.exe: 0xC00000FD: Stack overflow. 改成char content[204800]就好了,我的问题是: 1.栈怎么会这么小 2.怎么知道栈的大小 我用的VC2005, XP
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
Java大数据培训学校全套教程-JavaScript基础(20)
重要
声明
:如果感觉声音小,可以选择耳机或加音箱或电脑自带的声音,反复试一试。 Java大数据培训学校全套视频课程:java大数据培训学校全套教材系列课程由750集视频构成,基本就是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。3)所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。本门课程为java大数据培训学校全套教材系列课程的第二十篇,学习Js,构造函数,
局部变量
等相关概念让大家对JS 基础编程打下好的基础。4)课程特色:专业细致,偏案例,理论强,多作业。5)课程软件使用:记事本,火狐浏览器。
栈内存溢出的常见情况
避免
栈溢出
的方法包括合理设计递归算法、确保递归有正确的终止条件、控制函数内
局部变量
的数量和大小,以及避免无限循环或者不合理的循环条件。- 函数内部定义过多
局部变量
或者单个变量占用大量空间会增加栈空间的压力,可能导致
栈溢出
。- 尝试在栈上分配过大的数据结构,特别是递归创建大型结构时,可能迅速耗尽栈空间。- 没有停止条件的循环会不断向栈中添加数据,最终耗尽栈空间导致溢出。1. **递归调用层次过深:**4. **过大的数据结构:**2. **大量
局部变量
:**3. **无限循环:**
[超详细]
栈溢出
漏洞原理实例讲解
[超详细]通过实例讲解
栈溢出
漏洞 文章目录[超详细]通过实例讲解
栈溢出
漏洞代码简介分析程序整体执行流程程序执行细节及栈空间变化
栈溢出
通过
栈溢出
控制程序执行结果通过
栈溢出
插入代码 本篇文章通过《0day安全:软件漏洞分析技术》书中第二章中所用到的一个程序的
栈溢出
漏洞的复现,以及使用OD一步步调试来学习
栈溢出
完整的原理。程序虽然简单,但在一些基础薄弱的人眼中还是无法理解,所以导致很多新手到了这里就被“...
局部变量
、全局变量、堆、栈
预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分 栈区(stack)— 由编译器自动分配释放,存放函数的参数值,
局部变量
的值等。其操作方式类似于数据结构中的栈。 堆区(heap)— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 全局区/静态区(global/sta...
定义
局部变量
数组大小过大报错
如果定义的
局部变量
数组大小过大,编译器会报错“
栈溢出
”。 数组
声明
在函数内部,属于
局部变量
,存放在了栈上,如果数组过大比如a[1000000]。那数组占用的内存大小为:1000000*4byte约等于4M。而栈的默认内存空间为1M左右,所以会导致内存溢出解决这个问题。解决这个问题方法为:可以将数组
声明
在全局存储区或堆上即可 方法一:申明为全局变 方法二:存放在堆上 转载于:h...
C语言
69,322
社区成员
243,077
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章