注册 登录
编程论坛 C++教室

未处理的“System.StackOverflowException”类型的异常出现在club.exe 中。该怎么处理?

木小夕 发布于 2010-07-14 21:17, 1359 次点击
程序编译通过了,也没发现有无限循环调用的现象,可是就是不能运行,调试的时候刚开始就提示中断。
调试信息提示未处理的“System.StackOverflowException”类型的异常出现在 club.exe 中。
堆栈帧显示“club.exe!main()行6+0×ffffffd1字节”
main函数如下


#include<iostream>
#include"ALLCLUB.h"

int main()
{
    int length=0;  /*保存记录长度*/
    int flag;
    CLUB Club[MAXN];  /*定义结构体数组*/   
    WELCOMEMENU WM;
    while(flag==1)
        flag=WM.WelcomeMenu(Club,&length);
    system("pause");
    return 0;   
}
1 回复
#2
东海一鱼2010-07-16 11:33
你的栈空间不够分配,发生了‘溢出’异常。

CLUB Club[MAXN];          //像这样大的数组或对象,不要将其放在栈上。应该在堆上为其分配空间,而仅在栈上保留指向它的指针。使用后释放这个空间即可。

pCLUB = malloc(sizeof(CLUB)*MAXN);
......
......
Free(pCLUB);   
1