Run-Time    Check    Failure    #2   
 
 
一般是栈被破坏,你的代码可能有缓冲区溢出一类的问题。

Run-Time Check Failure #2 - Stack around the variable 'var' was corrupted

摘要:

简介VC++.NET编译新功能,运行时错误检查,编译选项 (/RTC1, equiv. to /RTCsu)

最近把一个别人早期在VC 6下编写的一个服务移植到VC 7.1 (.NET 2003)时,突然跳出

好些运行时错误提示。

经过查询编译器和出错说明,发现了编译器的这一新特性,并修正了代码隐患:

//someheadefile.h

typedef struct tarSomeMessagePack

{

 
 
 
 
char moibleNumber[20];

 
 
 
 
....

}SomeMessagePack_T,*SomeMessagePack_Ptr;

细心的开发者可能已经发现,这里使用字符串数组下标越界了。即mobileNumber[]有效元素

下标为0到19,mobileNumber[20]是非法的。在VC 6下,编译运行并没有处任何问题,这也结

构体在内存字节对齐也有关系,实际上,mobileNumber[]在默认与8字节对齐的环境下编译链

接的,因此,后4个bit也不会被系统用到,即mobileNumber[20],mobileNumber[21],

mobileNumber[22],mobileNumber[23]系统把它空着。

尽管系统运行同几年都很正常,但

strncpy(pack.mobileNumber," ",20);

这样的代码也是危险的代码,要是有一天,把这个结构体字节对齐方式改为1,那么程序一定

在这里崩溃。

VC7.1为我们提供了一种机制,在编译选项中,增加(/RTC1, equiv. to /RTCsu)项选。当程序

运行到这里的时候,即会向我们报告这一错误。

查看相关文档,了解了这一块代码的真实意图后,我把代码改为

strncpy(pack.mobileNumber," ",19);

这一问题消失。

//someimplement.cpp

strncpy(pack.mobileNumber," ",20);

郑注:这就是一些变量的内存访问出错造成的,而且在错误对话框中明显的提出了是哪个变量访问出错,可以查这个变量得到结果。典型的错误:如定义了一个TCHAR Code[1];,结果在使用中使用到了Code[1],就产生了这个错误

Run-Time Check Failure #2 - Stack around the variable 'ucPriKey' was corrupt的更多相关文章

  1. VS2008中Run-Time Check Failure #2 - Stack around the variable 'xxx' was corrupted 错误解决方法

    问题 : 在用VS2008写一段代码,算法都没有问题,但是调试的时候发现出了main之后就报 Stack around the variable 'xxx' was corrupted 的错误,后来发 ...

  2. Run-Time Check Failure #2 Stack around the variable ‘xxx’ was corrupted

    在改别人代码时,运行报错: Run-Time Check Failure #2 Stack around the variable 'buffer' was corrupted 这表明你对某变量的赋值 ...

  3. c++. Run-Time Check Failure #2 - Stack around the variable 'cc' was corrupted.

    Run-Time Check Failure #2 - Stack around the variable 'cc' was corrupted. char cc[1024];   //此处如果索引值 ...

  4. Run-Time Check Failure #2 - Stack around the variable 's' was corrupted. 出现了 。

    程序中存在内存越界,注意数组大小和数据大小.

  5. vs中“Stack around the variable was corrupted”的解决方案

    把 project->配置属性->c/c++->代码生成->基本运行时检查 为 默认值 就不会报本异常.具体原因正在研究中... 如果改为其他就有exception. exce ...

  6. vs中 Stack around the variable 'XXX' was corrupted.

    https://blog.csdn.net/hou09tian/article/details/75042206 把 project->配置属性->c/c++->代码生成->基 ...

  7. C++程序在debug模式下遇到Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call问题。

    今天遇到一个Access Violation的crash,只看crash call stack没有找到更多的线索,于是在debug模式下又跑了一遍,遇到了如下的一个debug的错误提示框: 这个是什么 ...

  8. Run-Time Check Failure #0

    Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is ...

  9. Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. 调用函数约定不同

    Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is ...

随机推荐

  1. SVN - 基础知识

    1. 术语 $ svn checkout  URL [PATH] -----   下载服务器所有文件 (clone) 到本地[path]  --- 只需一次 $ svn checkout  http: ...

  2. Pentaho Data Integration Step: BD Procedure Call

    官网连接:http://wiki.pentaho.com/display/EAI/Call+DB+Procedure 描述 调用数据库存储过程步骤允许用户执行一个数据库存储过程,并且得到结果.存储过程 ...

  3. bzoj 3435: [Wc2014]紫荆花之恋 替罪羊树维护点分治 && AC400

    3435: [Wc2014]紫荆花之恋 Time Limit: 240 Sec  Memory Limit: 512 MBSubmit: 159  Solved: 40[Submit][Status] ...

  4. ubuntu系统下创建软件桌面快捷方式

    转自ubuntu系统下创建软件桌面快捷方式 默认情况下,ubuntu会将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,只需要右键-复制- ...

  5. 今天,安装了一个GANGLIA玩玩,以后再测试NAGIOS吧。

    说不定以后派得上用场呢.. 还有,NGINX也要学,不能老是凭站IIS,APACHE混饭吃吧,现在它都这么流行了..新浪,网易,腾讯.

  6. 12.URL重写

    为什么要URL重写?1.有利于SEO(搜索引擎优化),带参数的RUL权重较低.2.地址看起来更正规,推广uid. 如我们一般在访问网页是会带参数,http://aaa.com/view.htm?id= ...

  7. bzoj1415

    比较简单的数学期望,先预处理出当聪聪在i,可可在j时聪聪往哪个点走然后做dp即可,我用了记忆化搜索实现 type node=record po,next:longint; end; ..,..] of ...

  8. POJ_2914_Minimum_Cut_(Stoer_Wagner)

    描述 http://poj.org/problem?id=2914 求无向图中最小割. Minimum Cut Time Limit: 10000MS   Memory Limit: 65536K T ...

  9. (转载)JavaScript中的原型和对象机制

    (转载)http://www.cnblogs.com/FlyingCat/archive/2009/09/21/1570656.html 1 对象相关的一些语言特性 1.1 一切皆为对象JavaScr ...

  10. asp.net 服务器端缓存与客户端缓存 [转]

    介绍: 在我解释cache管理机制时,首先让我阐明下一个观念:IE下面的数据管理.每个人都会用不同的方法去解决如何在IE在管理数据.有的会提到用状态管 理,有的提到的cache管理,这里我比较喜欢ca ...