在程序中分配了大量的内存(用C++操作符new)比如10M
退出时将其释放(delete [])
会不会影响系统的一些操作比如说搜索文件???上述现象是我在无意中发现的,程序正在运行着,然后再查找文件,就出现这种现象。
我把程序退出,就没这种现象了。不知道为什么???

解决方案 »

  1.   

    如果new成功,除了速度外没有任何影响,更不会导致出错!
    10M也不算大,你可以直接new 100M试试
      

  2.   

    补充:new大内存前要用try跟踪,你的程序可能因为没有new成功
      

  3.   

    这只能说明其他程序有问题,存在随机性。原因可能有很多,程序的不壮健,存在bug,甚至可能是有病毒。举个简单的例子,
    你先new了一个很大的空间以后,其他程序同时也要new一个很大的空间,但它们并没有new成功,也没有做try处理,结果就出错,这跟你的程序无关,只是它们不够壮健。你倒是应该考虑一下除了内存分配以外是否存在其它问题,例如悬空指针,memory leak等经常发生的问题。
      

  4.   

    javanew(我是java新手) is right.
      

  5.   

    无论是否交换页,都不影响程序运行,操作系统必须保证这一点。也就是说顶多只会慢些,因为要读写磁盘。我要问你,你用的是什么操作系统?是pc的吗?要是windows系统,我可以保证没问题。
      

  6.   

    程序申请内存,在释放,之后进行操作。
    我相信,绝大部分情况(对Windows不敢说100%)应该没有问题。
    实际上,即使内存没有被释放,对操作的功能也没有影响。影响的只是搜索的速度(系统不得不来回交换页面文件)。