RE 错误

admin 2025-07-24 20:08:29

【简单理解】
1、数组太小,下标超界。

int k=100,a[10];
cout<<a[k];
更正:int a[1000];

2、递归过多,爆栈空间。
int digui(int t){
  return digui(t+1);
}
更正:
int digui(int t){
  if(t>10)return t;
  return digui(t+1);
}

3、函数没有返回值。
int test(int t){
  t=t+10;
}
更正:
int test(int t){
  t=t+10;
  return 0;或者 return t;
}

【详细理解】


RE错误(Runtime Error)通常由程序运行时执行了非法操作或资源管理不当引起,以下是常见原因及解决方案:
【数组越界】

‌数组下标超出分配范围‌:例如声明数组a却访问a[100],会导致运行时错误。 ‌
‌数组声明过小‌:若数组容量不足以存储数据(如题目要求处理20个元素却只声明10个),可能引发崩溃。 ‌
【除零操作】
‌整数除法除以零‌:如10 / 0会导致程序异常中断。 ‌
‌浮点数除以零‌:同样会引发运行时错误。 ‌
【递归失控】
‌无限递归‌:如函数digui(t)不断调用自身却无终止条件,可能导致栈溢出(stack overflow)。 ‌
【指针/内存管理】
‌非法内存访问‌:如访问未分配的内存区域或越界访问数组。 ‌
‌栈空间不足‌:递归调用过深或局部变量过多占用过多栈空间。 ‌
【常见问题】
‌整数/浮点数溢出‌:数值超出变量类型可表示范围(如超大数值运算)。 ‌
‌类型不匹配‌:如混合使用不同类型数据导致运算异常(如文本与数字运算)。