1.cpp: In function 'int main()': 1.cpp:6:15: error: cannot convert 'int (*)[2]' to 'int**' in initialization int** p = b;
时间: 2024-05-11 16:18:49 浏览: 118
这错误的原因是因为 `int**` 和 `int(*)[2]` 是不同类型,不能直接转换。
`int**` 表示一个指向指针的指针,而 `int(*)[2]` 表示一个指向长度为2的整型数组的指针。这两者内存布局不同,因此不能直接转换。
解决办法是使用一个中间变量进行转换,例如:
```
int b[2][2] = {{1,2},{3,4}};
int (*p)[2] = b; // 定义一个指向长度为2的整型数组的指针
int **q = new int*[2]; // 定义一个指向指针的指针
for(int i=0; i<2; i++) {
q[i] = p[i]; // 将数组指针转换为指针数组
}
```
这样就可以将 `b` 数组中的元素赋值给 `q` 数组中的指针了。
阅读全文