c 二维数组指针动态创建
二维数组指针动态创建是指在程序运行时动态地创建一个二维数组,并通过指针来访问它。具体实现方法如下:
-
定义一个指向指针的指针变量,用于存储动态创建的二维数组的地址。
-
通过输入或计算得到需要创建的二维数组的行数和列数。
-
使用malloc函数动态地分配内存空间,其中第一个参数为需要分配的内存空间大小,第二个参数为每个元素的大小。
-
使用循环遍历二维数组,为每个元素赋初值。
-
将指向二维数组的指针赋值给指向指针的指针变量。
下面是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
int **p;
int rows, cols, i, j;
printf("Enter the number of rows and columns: ");
scanf("%d %d", &rows, &cols);
// 动态分配内存空间
p = (int **)malloc(rows * sizeof(int *));
for (i = 0; i < rows; i++) {
p[i] = (int *)malloc(cols * sizeof(int));
}
// 为每个元素赋初值
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
p[i][j] = i * cols + j;
}
}
// 输出二维数组
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
printf("%d ", p[i][j]);
}
printf("\n");
}
// 释放内存空间
for (i = 0; i < rows; i++) {
free(p[i]);
}
free(p);
return 0;
}
在上面的代码中,我们使用了两层循环来遍历二维数组,并使用了malloc函数动态地分配内存空间。最后,我们通过两层循环再次遍历二维数组,输出它的每个元素。注意,我们在使用完二维数组后,需要使用free函数释放内存空间。
原文地址: https://www.cveoy.top/t/topic/b5yk 著作权归作者所有。请勿转载和采集!