内存不能存为READ的几个原因( 二 )


【内存不能存为READ的几个原因】7、应用程序由于自身BUG引用了不正常的内存指针在使用动态分配的应用程序中 , 有时会有这样的情况出现:程序试图读写一块“应该可用的内存 , 但不知为什么 , 这个预料中可用的指针已经失效了 。有可能是“忘记了向操作系统要求分配 , 也可能是程序自己在某个时候已经注销了这块内存而“没有留意等等 。注销了的内存被系统回收 , 其访问权已经不属于该应用程序 , 因此读写操作也同样会触发系统的保护机制 , 企图“违法的程序唯一的下场就是被操作终止运行 , 回收全部资源 。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG , 你往往可在特定的操作顺序下重现错误 。无效指针不一定总是0 , 因此错误提示中的内存地址也不一定为“0x00000000 , 而是其他随机数字 。

推荐阅读