int** a 操作二维数组的代码
时间: 2024-08-16 21:06:36 浏览: 57
在C++或C语言中,`int** a` 表示一个指向指针的指针,用于操作动态分配的二维整数数组。以下是使用这样的数据结构动态创建和访问二维数组的一段代码:
```cpp
#include <iostream>
int main() {
// 定义一个可以存储一维数组指针的二维数组
int** a = new int*; // 创建一个大小为5的行
// 分配每一行所需的内存
for (size_t i = 0; i < 5; ++i) {
a[i] = new int; // 每一行有4个元素
}
// 初始化二维数组
for (size_t row = 0; row < 5; ++row) {
for (size_t col = 0; col < 4; ++col) {
a[row][col] = row * 4 + col; // 设置每个元素的值
}
}
// 访问并打印数组
for (size_t row = 0; row < 5; ++row) {
for (size_t col = 0; col < 4; ++col) {
std::cout << a[row][col] << " ";
}
std::cout << "\n";
}
// 清理内存
for (size_t i = 0; i < 5; ++i) {
delete[] a[i]; // 释放每行的内存
}
delete[] a; // 释放行指针数组本身
return 0;
}
```
在这个例子中,我们首先创建了一块内存来存放指针,然后为每一行分配了内存,最后对数组进行了初始化,并在结束时记得清理动态分配的内存。
阅读全文