社区
C语言
帖子详情
栈溢出 stack overflow 如何解决?
lowoodz
2010-09-26 11:26:35
需要进行大规模的计算,然而内存过小,应如何解决?
希望大家提供一些解决方案,使计算能在内存中运行,又不过大的影响运行速度。
...全文
459
21
打赏
收藏
栈溢出 stack overflow 如何解决?
需要进行大规模的计算,然而内存过小,应如何解决? 希望大家提供一些解决方案,使计算能在内存中运行,又不过大的影响运行速度。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ysjyniiq
2010-09-28
打赏
举报
回复
是不是递归层数过多?如果是,试试将递归改成循环。
赵4老师
2010-09-28
打赏
举报
回复
别忘了DOS时代的turbo C最大内存是640KB
还是用fseek、fread、fwrite文件操作模拟内存寻址和读写吧
在windows下用_lseeki64,_read,_write能模拟2的63次方字节呢!!!
xumaojun
2010-09-28
打赏
举报
回复
用指针吧,动态分配内存
Rainqin123
2010-09-27
打赏
举报
回复
内存过小,就多用堆啥。栈,在哪里看到的好像是vc6.0只支持最大分陪1024*1024,即1M的空间,多了就会异常,堆得话就不会,超出的往硬盘上分(操作系统)...(如上解释如不对请指示)
赵4老师
2010-09-27
打赏
举报
回复
自己用全局数组或堆中的数组甚至用文件读写模拟堆栈!
bobo364
2010-09-27
打赏
举报
回复
[Quote=引用 3 楼 qinqijing_123 的回复:]
内存过小,就多用堆啥。栈,在哪里看到的好像是vc6.0只支持最大分陪1024*1024,即1M的空间,多了就会异常,堆得话就不会,超出的往硬盘上分(操作系统)...(如上解释如不对请指示)
[/Quote]
还有这么一说
michael_liuyong
2010-09-27
打赏
举报
回复
可以用多线程.
lazy_2010
2010-09-27
打赏
举报
回复
才 1024 X 1024 的矩阵啊,很小嘛( 8 M ),...
使用 double *pdf = malloc(sizeof(double) * 1024 * 1024) 来分配内存就可以了;
这年头不该使用 turbo C 了。
时间一粒
2010-09-27
打赏
举报
回复
如果是数组的话,可以定义为静态的数组;也可以用数据结构中的线性表作为存储结构
luciferisnotsatan
2010-09-27
打赏
举报
回复
在堆上分配,或者加大栈大小(在linker-》system里设置)。
xiaohuh421
2010-09-27
打赏
举报
回复
3.还有注意你那些类的成员变量 ,也是不要太大,太多,如果有这样的类,尽量用new来创建对象.
xiaohuh421
2010-09-27
打赏
举报
回复
1.临时变量最好不要太多,太大.占用空间大的临时变量(如:char buf[1024*1024];)尽量用new或者malloc在堆上分配.
2.尽量减少递归层次.
somebody
2010-09-27
打赏
举报
回复
1.使用堆转存是一种解决办法
2.还有我觉得可以考虑把你的计算过程文件分块,用多线程!
mao_pu_hua
2010-09-27
打赏
举报
回复
栈是比较小的,大概只有2M吧,一般情况下,函数参数,还有char a[]这种的都是在栈中的。可能你分配的太多了吧。以前我在linux内核中经常出现这个问题的,特别是递归或者循环次数太多的情况下,或者是函数调用太频繁,不要用栈。
可以用堆,kmalloc或者是malloc出来,堆差不多是不限制大小的,随便用。记得回收就ok了
peter_chou
2010-09-27
打赏
举报
回复
栈大小可以修改,修改成足够用的大小即可。
小魔菇
2010-09-27
打赏
举报
回复
少在栈中分配大的变量 不要进行递归调用
常用函数可以申明为 inline
Qlaiaqu
2010-09-27
打赏
举报
回复
占用内存多的其实都有对应的占用内存小的解决方案,这时候就是cpu事件花的多了。
熊熊大叔
2010-09-27
打赏
举报
回复
使用占内存小的算法啊。
大家平时老说数据结构和算法学了没用,这下有用了吧。
lowoodz
2010-09-27
打赏
举报
回复
谢谢大家的回帖。留个题目:在turboC上进行1024*1024矩阵的乘法。
pengzhixi
2010-09-26
打赏
举报
回复
少弄些递归函数。
加载更多回复(1)
关于缓冲区(
Stack
overflow
)溢出的资料
关于缓冲区(
Stack
overflow
)溢出的资料
堆
栈溢出
中的声誉博弈_Reputation Gaming in
Stack
Overflow
堆
栈溢出
中的声誉博弈_Reputation Gaming in
Stack
Overflow
.pdf
堆溢出和对抗GS编译的
栈溢出
经典文献两篇
文献标题: 1.Defeating Microsoft Windows XP SP2 Heap protection and DEP bypass 2.Defeating the
Stack
Based Buffer
Overflow
Prevention Mechanism of Microsoft Windows 2003 Server.
Defeating the
Stack
Based Buffer
Overflow
Defeating the
Stack
Based Buffer
Overflow
Prevention Mechanism of Microsoft Windows 2003 Server
stack
-
overflow
-copy-paste, 实用工具函数从堆
栈溢出
复制/粘贴( 稍微修改一下).zip
stack
-
overflow
-copy-paste, 实用工具函数从堆
栈溢出
复制/粘贴( 稍微修改一下)
stack
-
overflow
-copy-paste实用程序JavaScript函数的Collection 复制/粘贴,并从
Stack
Overflow
答案中稍微修改
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章