| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 390 人关注过本帖
标题:在调试程序的时候出现的一个错误,有谁可以给我详细的讲解一下吗?
只看楼主 加入收藏
xp0213
Rank: 7Rank: 7Rank: 7
来 自:湖北武汉
等 级:黑侠
威 望:1
帖 子:222
专家分:524
注 册:2011-10-26
结帖率:88.24%
收藏
已结贴  问题点数:20 回复次数:1 
在调试程序的时候出现的一个错误,有谁可以给我详细的讲解一下吗?
下面是源代码,编译的时候没有错误,可以执行。这个程序没有任何目的,只是出于对函数的相互调用的好奇。
不过在调试出现错误的提示, 提示: 0xC00000FD: Stack Overflow.  出现栈溢出错误。
程序在执行一定的次数后自己结束。下面是代码。用的vc++6.0.

#include<stdio.h>
void fun1();
void fun2();

void fun1()
{
    printf("-------第一轮测试------\n");
    fun2();
}
void fun2()
{
    printf("-------第二轮测试------\n");
    fun1();
}

main()
{
    printf("--------测试开始--------\n");
    _sleep(1000);
    fun1();
}


百度搜索 stack overflow ,说是堆栈上只能分配1m的地址空间,把project设置里的堆栈加大就可以了,默认是1M,可以加大到10M。解决方法: 在project->settings->link->Category=output->stack allocations   设一个足够大的值就行。
堆栈的大小只有1M,如果在函数中定义了一个占用内存比较大的变量,那么也会导致堆栈溢出。这种情况只需在定义的时候定义为静态变量就行了,因为静态变量是不占用堆栈内存的。

不是很懂,至于变量,也没有定义。谁可以详细的介绍一下吗?谢谢
搜索更多相关主题的帖子: include 源代码 
2014-01-27 14:05
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:20 
死循环啊   自然造成堆栈崩溃了

DO IT YOURSELF !
2014-01-27 14:18
快速回复:在调试程序的时候出现的一个错误,有谁可以给我详细的讲解一下吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015806 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved