在我程序中有这三行代码:addr1 = new BYTE[n1];            // line 1
addr2 = new short[n2];           // line 2
addr3 = new short[n2*4];         // line 3在单步跟踪中,n1=8000,n2=2300,line 1运行成功,line 2出错并导致程序死掉。我多次高度,重启机器后还是这个地方出错,n1,n2保证是为正的。刚开始这部分是在一个线程中,后来我直接调用它,还是同样出错,同样原因?后来我又改成 addr1 = new BYTE[n1 + n2*10]; 一次分配所有内存,还是出错,转到异常处理!求救!

解决方案 »

  1.   

    addr2的类型是什么? 我这里测试的没问题啊!int n2 = 5000;
    short *addr2 = new short[n2];还是你的程序其它部分有问题,仔细看看吧!
      

  2.   

    不是递归调用,我一步步跟踪的addr2,addr3都是 (short *)型的哎,今天还是接着调试
      

  3.   

    提示中出现privileged instruction的错误,我搜了下,这和访问权限有关,比如访问某个端口会出现这个错误,但我程序中只是申请内存啊,想不通,问题还未解决~~~~~