有一个数组是看起来象这样的
BOOL bTest[12][12];
那么我们定义一个指针就该是这样的:
BOOL (*pBTest)[12];
如果我们直接将这个指针指向上面定义的数组,那没有问题,但是如果我们是要分配内存呢,并且是要分配N个二维数组的内存呢?用malloc会是这样子吗?     pBTest = malloc(144 * sizeof(BOOL) * N);那么用new 会成什么样子:     pBTest = new ....

解决方案 »

  1.   

    char *pChar = new char[100,100];
    pChar[0,0] = 'A';
    delete []pChar;
      

  2.   

    pBTest = malloc(144 * sizeof(BOOL) * N);
    錯誤!BOOL *pBTest[12];
    pBTest[i] = (BOOL *)malloc(12 * sizeof(BOOL));
    pBTest[i] = new BOOL[12];
      

  3.   

    /*为x动态分配空间*/
    float **x;
    x=(float **)calloc(n,sizeof(float *));
    x[0]=(float *)calloc(n*m,sizeof(float));
    for(i=1;i<n;i++)
        x[i]=x[i-1]+m;
      

  4.   

    int ** p = NULL;申请:
    p = new int*[M];
    for(int i = 0; i < M; i++)
    {
        p[i]  = new int[N];
    }释放:
    for(int i = 0; i < M; i++)
    {
        delete[] p[i];
    }
    delete[] p;