zoukankan      html  css  js  c++  java
  • C语言 在VS环境下一个很有意思的报错:stack around the variable was corrupted

    今天做一个很简单的oj来温习下c 语言  

    题目如下

    输入

    3位正整数

    输出

    逆置后的正整数

    代码如下:

    #include"stdio.h"
    int main()
    {
     float h,sum;int inputCount;int n;
     char input[3];
     scanf("%s",&input);n=2;
     while(n>=0)
     {
      if(n==2&&input[n]=='0')
      {
       n--;
       continue;
      }
      if(n==1&&input[n]=='0'&&input[2]=='0')
      {
       n--;
       continue;
      }
      printf("%c",input[n]);
      n--;
     }
     return 0;
    }

    结果用vs 调试的时候总是在程序结束的时候报错(在return 0;之后)

    错误如下:

    stack around the variable was corrupted(翻译为:在变量XX周围的堆栈已损坏)

    我以为越界了,检查了一下 都没有越界啊,然后网上查了下,貌似答复都是挺奇怪的,还要修改数组默认值什么的。

    于是自己就一步步的注释方法 最终锁定在

       char input[3];
     scanf("%s",&input); 

    因为我给这个数组 赋值了3个字符 按道理是没错的。

    可是在函数结束时,释放数组内存时  发现结尾居然没有'' 

    所以报错了。至于他是如何判断的  就不太清楚了

    放到oj上跑了一遍 是AC   应该是VS编译器释放的问题

  • 相关阅读:
    nodejs 教程
    文摘
    TED字幕摘抄
    Gamma函数相关matlab代码
    js以excel为模板的打印
    ASP.NET动态生成GridView的使用
    IE报错:缺少标识符、字符串或数字
    ExtJS Ext.Ajax.request最好设为同步
    javascript onclick 函数不执行
    Ext.grid.GridPanel数据转json
  • 原文地址:https://www.cnblogs.com/jilodream/p/4219798.html
Copyright © 2011-2022 走看看