在调试的时候当i=2048的时候会出现"Access Violation"的错误
是内存的使用出现了错误么?
在VC中怎么增大堆栈的内存啊?

解决方案 »

  1.   

    试一试VirtualAlloc(NULL, 5001*4,MEM_RESERVE|MEM_COMMIT|MEM_TOP_DOWN,PAGE_READWRITE);
    不行再试一试分成两步作MEM_RESERVE和MEM_COMMIT。
      

  2.   

    你做了好多次类型转换,都看糊涂了,到底你的数据是多大的?如果是double,好像是越界了。
      

  3.   

    Level[i] 这边越界了吧 
    建议看看Level 数组的长度
      

  4.   

    最终数据是按照double 方式访问的   越界了
      

  5.   

    double是8字节的, 你动态分配的明显每个元素都是4字节...
      

  6.   

    越界,用
    char *tmp = (char *)VirtualAlloc(NULL, 5001*sizeof(double),...)
    分配。
      

  7.   

    Level 是如何声明的,应该是越界了。
      

  8.   

    代码写得好像太不规范了啊,兄弟。如果是C++,当然用new分配了,如果是C,也要用malloc分配才对,否则代码根本不能移植。
    double是8字节,用4字节当然有问题。
     double* tmp = (double*)malloc(5001*sizeof(double));
     for (int i = 0; i < 5001; i++)
     {
       Level[i] = *tmp++;
     }