char *pTr= new char[1000*1000]; 
delete pTr;  //这里怎么会出错了呢?1000太大了?我的数据量也很大啊

解决方案 »

  1.   

    还要注意,在你的程序中pTr是不是指向了别的地方,不然释放也会出错
      

  2.   

    首先“数据量大”不是分配大数组的理由,资源总是有限的,如果数据量大,一定要考虑分批处理的方法,避免把所有数据都载入到内存中处理。要知道你空间连续可用的内存估计就几十M,如果你数据大于这个值,基本上载入内存根本不可能。所以不能根据自己的数据量直接开辟大空间,这不是一个合理的做法。至于你的问题,和大空间无关,你总共才分配不到1MB内存,实在不算什么。你delete出错一定是你指针本身有问题,但是从你贴的这两行代码是肯定看不出的,这两行代码完全没有问题