C指向指针的指针

C指向指针的指针

int **arr 也可以理解为一个二维数组的动态表示。它通常用于创建动态分配的二维数组,允许在运行时根据需要分配和管理内存。步骤如下:

分配行指针数组:首先,分配一个指针数组,其中每个元素指向一行的整数数组。为每一行分配内存:接着,为每一行分配一个整数数组。示例:

#include

#include

int main() {

int rows = 3, cols = 4;

// Step 1: 分配行指针数组

int **arr = (int **)malloc(rows * sizeof(int *));

// Step 2: 为每一行分配内存

for (int i = 0; i < rows; i++) {

arr[i] = (int *)malloc(cols * sizeof(int));

}

// 填充数组

for (int i = 0; i < rows; i++) {

for (int j = 0; j < cols; j++) {

arr[i][j] = i * cols + j + 1; // 填充示例数据

}

}

// 打印数组

for (int i = 0; i < rows; i++) {

for (int j = 0; j < cols; j++) {

printf("%d ", arr[i][j]);

}

printf("\n");

}

// 释放内存

for (int i = 0; i < rows; i++) {

free(arr[i]); // 释放每一行的内存

}

free(arr); // 释放行指针数组

return 0;

}优点:

使用 malloc 动态分配内存,可根据需要调整数组的大小。可创建任意大小的二维数组,不需要在编译时确定数组的大小。注意:使用完动态分配的内存后,必须使用 free 释放,以防止内存泄漏。

Zhiqian Chen Zhiqian Chen

che***iqian2005@qq.com

9个月前 (10-28)

📌 相关推荐

趱的解释
365不给提款怎么办

趱的解释

📅 07-08 👁️ 2389