gpt4 book ai didi

c++ - 函数 main 中程序开头的 stackoverflow 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:22 24 4
gpt4 key购买 nike

我制作了一个程序,我想对其进行调试(或运行),但在函数 main 中的第一个运算符之前,它中断并显示一条消息:name.exe 中 0x0020f677 处未处理的异常:堆栈溢出。为什么会发生这种情况以及如何解决该问题?Visual C++ 2010,Win32 控制台应用程序。

编辑1:调试器向我显示 chkstk.asm 中的 asm 代码。

为了解决这个问题,分析什么很重要?头文件中添加的东西导致了这个问题?

最佳答案

如果你清除了一个固定大小的数组并且它的大小太大,你可能会遇到这个错误。

int fixedarray[1000000000];

尝试减少长度或在堆上创建它。

int * array = new int[1000000000];

不要忘记稍后删除它。

delete[] array;

但即使在 C 函数中,也最好使用 std::vector 而不是指针,

//...
int Old_C_Func(int * ptrs, unsigned len_);
//...
std::vector<int> intvec(1000000000);
int * intptr = &intvec[0];
int result = Old_C_Func(intptr,intvec.size());

假设 32 位编译。

关于c++ - 函数 main 中程序开头的 stackoverflow 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5401599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com