int** a 操作二维数组的代码 使用C语言
时间: 2024-08-16 14:06:36 浏览: 65
在C语言中,`int** a`是一个指向指针的指针,它用于表示动态分配的二维整数数组。以下是一段简单的代码示例,展示如何操作这种类型的二维数组:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个函数来创建并初始化二维数组
int** create_array(int rows, int cols) {
int** a = (int**)malloc(rows * sizeof(int*)); // 动态分配行指针
if (a != NULL) {
for (int i = 0; i < rows; i++) {
a[i] = (int*)malloc(cols * sizeof(int)); // 再次为每一行分配列元素的空间
if (a[i] == NULL) {
free(a); // 如果失败,释放已分配的行指针
return NULL;
}
for (int j = 0; j < cols; j++) {
a[i][j] = 0; // 初始化每个元素为0
}
}
} else {
printf("内存分配失败\n");
}
return a;
}
// 示例使用
void print_array(int** arr, int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int rows = 3, cols = 4;
int** a = create_array(rows, cols);
// 打印初始数组
if (a != NULL) {
print_array(a, rows, cols);
// 进行一些操作,例如修改数组元素
a = 5;
} else {
printf("无法打印数组\n");
}
// 释放内存
for (int i = 0; i < rows; i++) {
free(a[i]);
}
free(a);
return 0;
}
阅读全文
相关推荐


















