看!死循环

    在VC 6.0中编译,链接都不会报错,但是在执行过程中会出现死循环。

    原因:

    在栈中地址从下到上(即从低到高)首先给i开辟了一个4字节的空间

    ,然后给数组a[5]开辟了空间。在执行到i=5时,发生了越界,其实在

    访问到a[5]时即访问到了i=0。所以出现死循环。

    在VS 2008中不会报错,但是在执行时系统会崩溃。

    2.

    //在vc 6.0中编译,链接都不会报错,但是在执行过程中系统崩溃。

    //在VS 2008中不会报错,但是在执行时系统会崩溃。

    时间: 2024-12-22 02:05:29

    看!死循环的相关文章

    通过简单的例子看c程序死循环

    在解释什么是程序死循环之前,先看一段代码,直观感受一下: 事实上,"Welcome to my town"在运行窗口是不断无休止的执行的.单就这个程序来说,每当执行一遍循环时,数组里面的内容被放进了整形数据0,即就是说,arr[0]--arr[9]里放的内容为0.因为数组长度为10,i刚好是数组的下标,数组最后一个元素为arr[9],当i自加到10的时候,按道理应该是arr[10]=0,但是考虑到数组长度,系统自动找到存放0的第一个位置,即arr[0].以后,就不断的i自加.循环,导致

    金矿模型看动归(PASCAL版)

    原文地址:http://www.cnblogs.com/SDJL/archive/2008/08/22/1274312.html{PASCAL语言} 对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划.本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方,让你产生错误理解的地方,让你难得读懂的地方,请跟贴指出

    高并发环境下低级死循环bug

    业务背景 在内存中,对mq消息进行分类计数. 问题描述 生产环境,运行一段时间后,发现消息队列有大量堆积.如果把计数逻辑注释掉,只接收用户访问消息而不进行处理,则mq队列无堆积.mq栈dump信息如下: ConsumeMessageThread_75    TID: 214 STATE: WAITING ConsumeMessageThread_75    sun.misc.Unsafe.park(Native Method) ConsumeMessageThread_75    java.ut

    深入理解JAVA集合系列三:HashMap的死循环解读

    由于在公司项目中偶尔会遇到HashMap死循环造成CPU100%,重启后问题消失,隔一段时间又会反复出现.今天在这里来仔细剖析下多线程情况下HashMap所带来的问题: 1.多线程put操作后,get操作导致死循环. 2.多线程put非null元素后,get操作得到null值. 3.多线程put操作,导致元素丢失. 死循环场景重现 下面我用一段简单的DEMO模拟HashMap死循环: 1 public class Test extends Thread 2 { 3 static HashMap<

    HashMap 死循环的探究

    大家都知道,HashMap采用链表解决Hash冲突,具体的HashMap的分析可以参考一下http://zhangshixi.iteye.com/blog/672697 的分析.因为是链表结构,那么就很容易形成闭合的链路,这样在循环的时候就会产生死循环.但是,我好奇的是,这种闭合的链路是如何形成的呢.在单线程情况下,只有一个线程对HashMap的数据结构进行操作,是不可能产生闭合的回路的.那就只有在多线程并发的情况下才会出现这种情况,那就是在put操作的时候,如果size>initialCapa

    再看GS线程

    再看GS线程 void GameServer::ProcessThreadTry() { int nCount = 0; packet rcvPkt; rcvPkt.data = new char[1024 * 100]; //该事件工厂主要创建了两个定时器1.livemgr的检测(即是否是有效的连接)2.道具帮会差异更新数据的获取即定时从道具帮会容器中获取差异需要保存到数据库的这个数据 //3.释放队列的处理,现在玩家下线不是直接把channel删除掉而是放到释放队列中等没有数据库访问时在删除

    跳出生活的死循环

    时间好快,每次拿起剃须刀的时候,就知道又过去了好几天.然后,这几天自己收获了什么东西,学到了什么,在那些方面有进步.思考这些操蛋的问题时,能明显感觉出这些天的状态,是否杂乱无章,是否井井有条.当然,我一般都是在前者中挣扎,离后者的距离还是有点远.为什么自己会感觉,很乱,就算事先有安排,也会被各种小事所打乱.这两天晚上,晚饭后,一个人推着车到校园里散步.不得不承认,这种感觉很好,带上耳机,整个世界基本就剩歌声和校园的画面.然后,静静的走两圈.期间去思考一些问题,目前最困扰的问题莫过于,为什么把目前

    HashMap简单源码及多线程下的死循环

    主要记录hashMap的一些基本操作源码实现原理以及多线程情况下get()操作的死循环引发原因 一.hashMap简介 1.hashMap集合的主要属性及方法 (默认初始化容量)DEFAULT_INITIAL_CAPACITY = 16 (默认最大容量)MAXIMUM_CAPACITY = 1 << 30 (默认加载因子)DEFAULT_LOAD_FACTOR = 0.75f (Entry数组)Entry[] table (Entry实例的数量)size put(K key, V value)

    图解集合5:不正确地使用HashMap引发死循环及元素丢失

    问题引出 前一篇文章讲解了HashMap的实现原理,讲到了HashMap不是线程安全的.那么HashMap在多线程环境下又会有什么问题呢? 几个月前,公司项目的一个模块在线上运行的时候出现了死循环,死循环的代码就卡在HashMap的get方法上.尽管最终发现不是因为HashMap导致的,但却让我重视了HashMap在多线程环境下会引发死循环的这个问题,下面先用一段代码简单模拟出HashMap的死循环: public class HashMapThread extends Thread { pri