如何用指针新建一个二维数组
时间: 2023-06-03 22:03:41 浏览: 39
你好!关于你的问题,可以用以下语句创建一个指针二维数组:
```
int **arr = new int*[row];
for(int i = 0; i < row; i++){
arr[i] = new int[col];
}
```
其中,row和col分别表示数组的行和列数量。注意,在使用完后,需要手动释放内存:
```
for(int i = 0; i < row; i++){
delete[] arr[i];
}
delete[] arr;
```
希望这能解决你的问题!
相关问题
用指针指向一个二维数组
可以使用指向指针数组的指针指向一个二维数组,或者使用一个指针指向一个二维数组。下面是两种方法的示例代码:
1. 使用指向指针数组的指针
```c
int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int (*parr)[4] = arr;
int **pparr = (int **)parr;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", pparr[i][j]);
}
printf("\n");
}
```
2. 使用一个指针指向一个二维数组
```c
int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int *parr = (int *)arr;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", *(parr + i * 4 + j));
}
printf("\n");
}
```
注意:这两种方法的指针类型和指针的操作方式有所不同,需要根据实际情况来选择使用哪种方法。
如何用指针传递一个二维数组
要用指针传递一个二维数组,可以将二维数组的名字作为指向数组首元素的指针,即数组名代表了一个指向数组的首地址的指针。然后将该指针作为参数传递给需要访问这个数组的函数即可。下面是一个示例:
```
void function(int (*ptr)[col], int row, int col)
{
for(int i=0; i<row; i++)
{
for(int j=0; j<col; j++)
{
printf("%d ", ptr[i][j]);
}
printf("\n");
}
}
int main()
{
int arr[row][col] = {{1,2,3},{4,5,6},{7,8,9}};
int (*ptr)[col] = arr;
function(ptr, row, col);
return 0;
}
```
在上面的例子中,我们首先定义了一个二维数组`arr`,然后将`arr`的首地址保存到`ptr`指针中。 在`function`函数中,我们用指针访问了二维数组的元素,并且将该指针作为参数传递给了`function`函数。