C语言定义并初始化一个二维数组(利用二级指针)

您所在的位置:网站首页 c语言指针如何定义并初始化 C语言定义并初始化一个二维数组(利用二级指针)

C语言定义并初始化一个二维数组(利用二级指针)

2024-05-06 19:16| 来源: 网络整理| 查看: 265

C语言定义并初始化一个二维数组(利用二级指针) 1.代码如下 #include #include int main() { // m, n表示数组的行数和列数 int m, n; scanf("%d %d", &m, &n); // p是一个二级指针,使用malloc函数初始化。注意p指向的是一个指针,所以sizeof操作符的操作数是int*,表示分配一个int型指针的内存空间 // 分配m个int型指针所占用的内存空间,并将这片内存空间的基地址(首个元素的地址)返回给二级指针p int** p = (int**)malloc(sizeof(int*) * m); // p[i]是一个指针,每一轮循环都分配n个int型大小的内存空间,并将这片内存空间的首地址返回给p[i] for ( int i = 0; i < m; i++) { p[i] = (int*)malloc(sizeof(int) * n); } // 为二维数组的每一个元素赋值 for ( int i = 0; i < m; i++) { for ( int j = 0; j < n; j++) { scanf("%d", &p[i][j]); } } // 打印每一个二维数组的元素 for ( int i = 0; i < m; i++) { for ( int j = 0; j < n; j++) { printf("p[%d][%d]=%d ", i, j, p[i][j]); } printf("\n"); } // 释放指针p[i]指向的内存空间,并将指针的值置为0 for ( int i = 0; i < m; i++) { free(p[i]); p[i] = NULL; } // 释放二级指针p指向的内存空间,并将指针的值置为0 free(p); p = NULL; return 0; } 2.输入输出测试

第一行输入二维数组的行和列

3.代码可视化(pythontutor.com)

在这个网站上无法进行scanf的输入, 因此需要对代码做一写改动才可以在pythontutor.com上运行并可视化。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3