我正在用C / C ++编写一个文件,它生成100000
行记录(name, int[5] grade, double[5].value)
。代码应为名称生成100000
个随机字符,为值生成整数。我收到stackoverflow错误。任何人都可以帮忙吗?
答案 0 :(得分:3)
不要使用递归函数来生成或处理记录,也不要在堆栈上分配记录。可以通过迭代替换递归,并且可以使用std :: vector。
替换堆栈数组答案 1 :(得分:2)
为避免堆栈溢出错误,请不要在堆栈上放置太多数据。基本上:不要使用大型数组的局部变量。相反,创建作为指针的locals,并使用malloc()
或new
为实际数据分配空间......这会将指针放在堆栈上,但将数据放在其他位置。
最后,不要忘记你必须free()
任何你malloc()的东西,并且你必须delete
任何你新的东西,一旦你完成它(并且你仍然有指针) !)。