RE问题的常见原因

本文仅为问题收录贴,如有补充,敬请各位大佬发在聊天区,在下会定时更新^_^

这篇文章如果解决了你的问题,不要忘记来还愿啊~~

有时,当我们运行一个程序,久久没有输出,突然,传来一句话,process exited with value 3221225477

鬼故事讲完了,我们来说说,这是怎么一回事。

其实这就是RE了,当程序返回值开头为322122…的时候,那么你的程序就RE了。

在Windows是RE返回值可能是3221225725、3221225620  或者是  3221225477

 我们来说说引起问题的原因

        1.数组越界

        数组在创建的时候是分配了内存的,但是如果你的数组越界了,那么越界的部分就是访问了没有分配内存的区域

        举个例子:

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[5];
	a[10]=1;
	return 0;
}

         2.空指针

        如果一个指针没有赋过值,或者指向的是一个已经被释放的局部变量的地址,就会RE

        举个例子:

#include <bits/stdc++.h>
using namespace std;
int main(){
	int *t;
    cout<<*t;
	return 0;
}

        3.除以0

        我们在小学就知道,不能除以0,我们在写代码的时候也不会这么写,但是有可能有一个变量变成了0,如果返回值是3221225620,注意结尾是5620时,可能你就是除以0了;

        4.死递归

        我们知道,递归是要调用栈的,如果你的递归不断地执行那么你就会RE,说白了就是运行内存不够了,一直递归下去造成了堆栈空间不足了。

        5.访问空栈

        如果一个栈、队列或者其他东西,你在他没有装东西的时候访问它,你就会RE

        举个例子:

#include <bits/stdc++.h>
using namespace std;
int main(){
	stack<int> k;
	cout<<k.top();
	return 0;
}

         6.运算量大于了你的堆栈空间  本人吃过大亏

        一般程序给出的堆栈空间只有1~2M,如果定义的变量超过了这个范围,就会出现栈溢出的异常。

        这里诚心建议大家,如果定义的变量大于1000,就把它放在主函数外,让它成为一个全局变量吧,我初学时可是被这个坑了十几次

        举个例子:

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[1919810];
	return 0;
}

如果还有没有提到的情况,希望大家能在评论区补充^_^

### 关于 Windows RE 的图文教程 Windows Recovery Environment (Windows RE) 是一种用于修复启动问题和其他严重错误的恢复环境。通过 Windows RE 可以访问多种诊断和修复工具,帮助解决操作系统无法正常启动的问题。 #### 启动进入 Windows RE 要启动进入 Windows RE,可以通过以下方法之一: 1. **使用安装介质** 如果计算机无法启动,则可以从 Windows 安装 USB 或 DVD 启动,并选择“修复计算机”选项[^1]。 2. **高级启动设置** 对于能够启动到 Windows 的情况,可通过设置中的“更新和安全”->“恢复”,找到并启用“高级启动”。重启电脑后会自动引导至 Windows RE 环境。 #### 使用 Windows RE 工具 一旦进入了 Windows RE,可以选择不同的工具来进行系统维护或数据保护工作: - **疑难解答**:提供了一系列自动化解决方案来检测和修正常见的启动失败原因。 - **系统映像还原**:如果之前创建过完整的备份镜像,可利用该功能将整个硬盘恢复到某个时间点的状态。 - **初始设置(重置此 PC)**:允许用户执行一次全面清理或保留个人文件的同时移除应用程序及设置,类似于全新安装的效果。 - **命令提示符**:对于有经验的技术人员来说,这里提供了更灵活的手动操作方式,比如运行特定脚本或者修改注册表项等。 ```powershell # 示例:在命令提示符下查看磁盘分区信息 diskpart list disk exit ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值