粉丝1375获赞5815

兄弟们又出现问题了,做的二十六键键盘在退出的时候会突然卡死,像这样点退出的时候就死掉了,看下程序直接进入了硬件错误。这里退出的时候或是在县城管理任务里面把创建的动态任务删除掉, 就是这里把注册的按键删除掉,一共有三十个按键,也就是说三十个按键显示县城和三十个按键检测触发县城,这里大概率是我给的堆占不够导致的,这里把堆占空间从六十四改到一百二十八,然后重新下载进去看, 可以看到问题就解决了,但是我怎么知道我每次给他堆占空间到底够不够,不能说每次都出了问题我才去反查,于是 我在这里做了堆占空间的动态检测,看看每个任务的实际剩余空间,可以看到在刚开始的时候,这个任务有十六的剩余占空间,现在我们操作一下开启键盘和关闭键盘。好的, 现在卡死了,我们回过头来看一下现在的堆战空间,可以看到现在剩余的堆战空间是负数了,也就是说堆战超了,这个时候我就可以在创建的时候加多一些堆战空间, 并且不用担心堆占空间浪费了。

下面咱们用 q 呢演示一下,嗯,咱们说这个堆山易出,嗯,之前呢我是赤土,通过更改一个全局变量,然后演示这个堆山易出,嗯,我后来发现呢这个 a 五幺这个文件呢? 嗯,他他做的吧?就是还是比较完善,给我要这个启动文件,他呢把这个 sp 指针呢针对你这个编辑,就是你编一你这个,你这个自己写的这个程序所用的这些全局面料啊,这种他给你进行一个地址排布,导致 sp 这个,这指这指向的这个位置呢永远是比你这个内存的位置呢是靠下的。 那么我是通过,现在呢是通过一个,就是还说自己吊用自己,嗯,然后呢就是一直吊用,一直吊用啊,吊用到深度很深。然后呢咱们来演示一下这个对战一出,咱们这个现象是这样的,根据了全局变量给他放了一个直,然后呢就一直吊这个函数, 这个函数呢是一个自己教自己的,也就是第一位函数,第一位函数呢就是来自己教自己,自己教自己来咱们这写的就是如果说他到到达一千次,到达一千次,然后他就返回 来加热一下这个现象,你看咱们没有更改这个变量的值,结果呢咱们一运行这个函数,哎,运行这个程序开始呢他是三三,没问题,是咱们负的这个三三, 然后呢咱们一直运行,哎,你发现他变成 bb 了,他变成 bb 了,这说明呢我没更改这个变量,这个变量我没显示的来通过这个变量去更改他,结果呢因为意外的就更改了,那么这个呢就给他一出,那么他的原理是什么呢?咱们跑到头,然后呢 这是一个断点,然后咱们一下一下看看,咱们现在这个 sp 指针指向的是零九,零九,然后呢咱们就是 看一下到函数内部去,哎,结果呢他就零币了,零币了,嗯,他是这是 sp, 是加二的,是加二的,是往下偏一个偏一两个地址,嗯,然后呢加二, 然后呢咱们再继续运行,哎,这样又掉了一个子函数,相当于虽然是他本身,你也可以理解为本身也是一个子函数,只不过是你想起来可能是有的人干起来绕不过去这个坎,其实自己掉,自己就当他就是这么一个函数,也无所谓啊。 那么哎,再一掉,一进去一,咱们一泡进去之后,然后呢他就,哎零零币了,零比零随零币还有加二,然后呢一直进行,就是咱地再加二,再加二,然后一直进行,一直进行。 这个 pc 的指针呢,他就一直往里放,一直往里放,一直往里放,结果呢你放着放着,你把这个 sp 加到 ff 加满了,再加回来, a 的地址呢?咱们看一下这 老爷的地址, 哎,这个地址呢是零八,零八,你总有,那么把这个加满的时候,你加满了,结果他就会 把这个纸给填到零八里边去啊,他就会填到零八里边去,然后呢把这个币币填到里边去了,嗯,那么这个时候呢,相当于就是一个非常艺术的一个案例,咱们演示完毕。

