C动态非连续数组
2015-08-19 23:16
218 查看
#include<stdio.h> #include<stdlib.h> // 1 为行地址分配内存 即二级指针 // 2 为每行分配一片内存, // 3 释放内存 //记得释放内存 void main() { printf("动态非连续二维数组,可随意填写行和列,\n"); int x, y; scanf_s("%d%d", &x, &y); //设置行和列 //二级指针可以存放指针数组的地址 //动态分配一片内存,用来存放指针数组,每一个元素都是一个地址,这里的地址是行地址 //然后将指针数组的地址传递给pp保存 int **pp =(int **) malloc(sizeof(int *)*x); //分配内存 并且转换成int**类型 // 注意这里是 sizeof(int *)*x 代表存放行地址 //下面使pp保存的地址进行赋值 对应每行的地址 行即一维数组 所以上面的才是 sizeof(int *)*x for (int i = 0; i < x; i++) { pp[i] = malloc(sizeof(int)*y); // 分配每行sizeof(int)*y大小的内存 // 并且将每行的首地址传递给pp[i] } int num = 0; for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { pp[i][j] = num++; printf("%4d", pp[i][j]); } printf("\n"); } for (int i = 0; i < x; i++) { free(pp[i]); } free(pp); getchar(); getchar(); }
相关文章推荐
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言内存对齐实例详解
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- C语言进制转换代码分享
- 基于C语言fflush()函数的使用详解
- C语言单链队列的表示与实现实例详解
- 关于C语言除0引发的思考
- 深入分析C中不安全的sprintf与strcpy
- Lua教程(四):在Lua中调用C语言、C++的函数