用动态申请!否则是有限制的!
new,delete

解决方案 »

  1.   

    使用GlobalAlloc来分配大内存的数据,而不是使用new,同时,对于动态分配的内存,如果不使用,要记得释放,而且,有些内存可以共用的就可以一起使用。动态分配的内存的大小跟编译模式有关。
      

  2.   

    你这样开辟数组是在堆栈上分配的,当然会溢出,用new就可以了,只是不要忘了delete
      

  3.   

    用new可以的,我new过100M的数组都可以。
      

  4.   

    那最大在堆上可以分配多大的内存呢?在栈上有没有限制?有的话是多少?
    我这些数组虽然有时是空的,可我得做最坏预分配啊,不能在程序没运行完就释放。你们说的动态分配就是用new分配吗,是预先知道数组大小再用new分配,还是数组大小跟人为输入值有关,是不可预测的,如果是数组大小跟人为输入有关可以给出原码吗?比方说变量int iCount;存放数组大小,我要分配float类型的数组名为CalAuto的数组,怎么分配?是这样吗?
    new CalAuto[iCount];就可以吗?
      

  5.   

    那最大在堆上可以分配多大的内存呢?在栈上有没有限制?有的话是多少?
    我这些数组虽然有时是空的,可我得做最坏预分配啊,不能在程序没运行完就释放。你们说的动态分配就是用new分配吗,是预先知道数组大小再用new分配,还是数组大小跟人为输入值有关,是不可预测的,如果是数组大小跟人为输入有关可以给出原码吗?比方说变量int iCount;存放数组大小,我要分配float类型的数组名为CalAuto的数组,怎么分配?是这样吗?
    new CalAuto[iCount];就可以吗?那类型怎么办?
      

  6.   

    float *CalAuto=new float[iCount];
    栈的大小可以在建立工程时指定。
    堆的大小当然受系统实际内存限制。
    如果真要开辟非常非常大的数组,就用VirtulAlloc,
    理论上可以达到4G