【求解释】关于new二位数组的问题
如下代码:int** a = new int*[3]; // 1
for(int i = 0; i < 2; i++) //2
a[i] = new int[2];
请问这创建的时一个2*3 的数组还是一个3*2的数组?
个人感觉步骤1 是见了一个存放三个整型数组指针的数组,步骤2对每一个指针new一个大小为2的数组。这样看来应该是新建了一个三行两列的数组。但是我运行下面代码的时候出错:
for (int i = 0; i< 3; i++){
for(int j = 0; j < 2; j++){
a[i][j] = 0;
cout << a[i][j] << " ";
}
cout << endl;
}
如果下面这样写就对:
for (int i = 0; i< 2; i++){
for(int j = 0; j < 3; j++){
a[i][j] = 0;
cout << a[i][j] << " ";
}
cout << endl;
}
请各位高手分析一下什么原因,谢谢。