二维数组的理解

void main()
{
    int**p = NULL;
    p = new int*[2];
    for (int i = 0; i < 3; i++)
        p[i] = new int[3];
    for (int i=0;i<2;++i)
    {
        for (int j=0;j<3;++j)
        {
            p[i][j] = i + j;
            cout << &p[i][j] << endl;
        }
    }
    cout << "/*****************************************/" << endl;
    for (int i = 0; i < 2; ++i)
    {
        for (int j = 0; j < 3; ++j)
        {
            cout << *(*(p+i)+j) << endl;
        }
    }
    cout <<p <<endl;
    cout << *p << endl;
}

运行结果:

上面的代码: 

1、p代表的是什么?

2、相邻行的指针是连续的吗?每行相邻列的指针是连续的吗?

3、图片里的每个像素的value应该是连续的,所以上面的申请方式不能用于连续的内存申请。

猜你喜欢

转载自blog.csdn.net/GuoHuWei1989/article/details/89353531