如何修复visual C / C ++中的堆栈溢出错误?

时间:2011-07-28 19:51:35

标签: c++

我正在用C / C ++编写一个文件,它生成100000行记录(name, int[5] grade, double[5].value)。代码应为名称生成100000个随机字符,为值生成整数。我收到stackoverflow错误。任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

不要使用递归函数来生成或处理记录,也不要在堆栈上分配记录。可以通过迭代替换递归,并且可以使用std :: vector。

替换堆栈数组

答案 1 :(得分:2)

为避免堆栈溢出错误,请不要在堆栈上放置太多数据。基本上:不要使用大型数组的局部变量。相反,创建作为指针的locals,并使用malloc()new为实际数据分配空间......这会将指针放在堆栈上,但将数据放在其他位置。

最后,不要忘记你必须free()任何你malloc()的东西,并且你必须delete任何你新的东西,一旦你完成它(并且你仍然有指针) !)。