int *A;
int size;
A = new int[size];
size = 2;
A[0] = 100;
A[1] = 200;
CString Msg;
Msg.Format("%d",A[0]);
MessageBox(Msg);
delete[] A;
一执行就说内存不足,为什么?

解决方案 »

  1.   

    那个size没有赋值就使用,对于局部变量,未初始化的变量其值难以预料。
    int *A;
    int size = 100;
    A = new int[size];
      

  2.   

    A = new int[size];
    根本没有分到内存
      

  3.   

    int *A;
    int size;
    size = 2;          //这两行互换就行了
    A = new int[size]; //原来在上一行的上面
    A[0] = 100;
    A[1] = 200;
    CString Msg;
    Msg.Format("%d",A[0]);
    MessageBox(Msg);
    delete[] A;
      

  4.   

    int size;
    A = new int[size];
    size局部变量,没有初始化,是一个内存中的随机值
    可能非常大,当然就说你内存不足了
    要是全局变量,或是静态变量定义时就初始化了为0
    但是局部变量,没有初始化
      

  5.   

    你的写法大大的错误,在使用New分配数组时是一定要使用一个常量值的
    最好用 如:const int Temp=100;define Temp 100;(我的观点)
      

  6.   

    你的size个变量没初始化
    初始值是DOS 是 2^16
           WIN 是2^32
    当然不够拉
      

  7.   

    luoqy(QYcsdn):error!
    huang_yi_cn(蓝色的云):right!