VS报错--- Run-Time Check Failure #2 - Stack around the variable ‘xxx‘ was corrupted,解决方法

编译器是VS2017的,今天开发项目遇到这个问题,记录下:

编译器报错:Run-Time Check Failure #2 - Stack around the variable 'xxx' was corrupted。

看着字面的意思是:运行时检查失败#2 -变量“xxx”周围的堆栈已损坏。

但是代码的逻辑并无误,很是奇怪,后来网上查了才知道解决方法;

【解决方案】

项目---属性---配置属性---C/C++---代码生成---基本运行时检查:

设置为”默认是“,点击应用,确定后即可。

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: "栈" 是一种线性数据结构,它具有后进先出 (LIFO, Last In First Out) 的特性。变量的存储位置通常在栈中进行分配和释放。当函数被调用时,会在栈中为其分配空间来存储局部变量,当函数返回时,这些空间会被释放。 ### 回答2: stack around the variable是指在变量周围的堆栈空间。堆栈是一种数据结构,用于存储局部变量、函数参数和返回值等。当我们在程序中声明一个变量时,系统会将该变量存储在堆栈中。 堆栈空间是有限的,而且大小是根据操作系统和编译器配置决定的。当一个变量占用的堆栈空间超过了其允许的大小时,就会出现stack around the variable的错误。 造成这个错误的原因可能有很多。一种常见的情况是声明一个数组并在使用时超出了其定义的大小。例如,如果我们声明了一个数组arr[10],但是在循环中访问了arr[15],那么就会发生stack around the variable的错误。 另一种可能的情况是在函数中使用了一个未初始化的局部变量。如果我们在函数中声明一个变量但没有给它赋初值,那么这个变量的值是不确定的,这可能会导致stack around the variable的错误。 要解决这个问题,我们需要检查程序中的变量使用和赋值,并确保它们在堆栈内存范围内。如果发现超出范围的变量访问,我们需要根据实际需求来调整变量的定义和使用,并确保对变量进行初始化。此外,我们还可以增加堆栈空间的大小,以容纳更大的变量

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值