首页 热点资讯 义务教育 高等教育 出国留学 考研考公

堆栈为什么会溢出

发布网友 发布时间:2022-04-22 06:08

我来回答

1个回答

热心网友 时间:2023-09-09 00:32

常言所说的堆栈溢出,就是指栈溢出。使用
malloc();
函数是动态分配内存堆区的空间,一般的程序如没用这个,就不存在堆溢出。栈溢出:
栈空间是预设的,它通常用于存放临时变量,如果你在函数内部定义一个局部变量,空间超出了设置的栈空间大小,就会溢出。不仅如此,如果函数嵌套太多,也会发生栈溢出,因为函数没有结束前,函数占用的变量也不被释放,占用了栈空间。解决办法:恰当的设置栈空间大小。分析代码,评估在哪个环节,使用的临时变量字节数最大,所设置的栈空间必须大于此。也可以将大的变量在全局进行定义,它就不占用栈区空间。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com