一、局部数组过大。当函数内部的数组过大时,有可能导致堆栈溢出。

例如:

#include <stdio.h> #define SIZE 1 * 1024 * 1024 int main() { int b[SIZE]; int
i; for(i = 0; i < SIZE; ++i){ b[i] = i; } for(i = 0; i < SIZE; ++i){
printf("%d", b[i]); } return 0; }
二、递归调用层次太多。递归函数在运行时会执行压栈操作,当压栈次数太多时,也会导致堆栈溢出。

#include <stdio.h> int Sum(const unsigned int n) { printf("now n is %u\n", n);
if(0 == n || 1 == n){ return n; } return n + Sum(n - 1); } int main() {
unsigned int n; printf("Input n: "); scanf("%d", &n); printf("The sum of 1 to
%u is %u\n", n, Sum(n)); return 0; }
三、指针或数组越界。这种情况最常见,例如进行字符串拷贝,或处理用户输入等等。

四、没有垃圾回收。

技术
©2019-2020 Toolsou All rights reserved,
python中delete怎么用_python中如何使用np.delete()方法?大厂Java岗春招必看:论一个面渣逆袭之路上必学得那些知识点3 4j不是合法的python表达式_3+4j不是合法的Python表达式。SQL综合题 员工单位综合题pyqt按钮调用python程序_PyQt:链接按钮到程序中的函数找出游戏的获胜者(java)看完这个去面试,稳过~~将硬盘转换成GPT分区格式python常用内置函数C语言(猜数字小游戏)