动态申请二维数组两种方法
来源:互联网 发布:lol淘宝权在哪里直播 编辑:程序博客网 时间:2024/05/16 07:52
#include <iostream>int main(){int row = 4;int col = 4;//1. 动态申请二维数组(内存连续),前提要知道列数,这里是三列int (*a)[3] = (int (*)[3])malloc(row * 3 * sizeof(int));//int (*a)[3] = (int (*)[3])malloc(row * sizeof(int[3]));效果一样//[]中必须是常量//1~9赋值for (int i = 0; i < row; i++){for (int j = 0; j < 3; j++){static int val = 1;a[i][j] = val;val++;std::cout << a[i][j] << '\t';}std::cout << std::endl;}//释放free(a);//用new实现int (*a2)[3] = new int[row][3];for (int i = 0; i < row; i++){for (int j = 0; j < 3; j++){static int val = 1;a2[i][j] = val;val++;std::cout << a2[i][j] << '\t';}std::cout << std::endl;}delete [] a2;//2. 二重指针模拟二维数组,列数可以是变量,这其实不是严格意义上的二维数组int ** b = (int **)malloc(row * sizeof(int *));for (int i = 0; i < row; i++){b[i] = (int *)malloc(col * sizeof(int));//列数为3,同理可以生成锯齿数组}//1~9赋值for (int i = 0; i < row; i++){for (int j = 0; j < col; j++){static int val = 1;b[i][j] = val;val++;std::cout << b[i][j] << '\t';}std::cout << std::endl;}//释放for (int i = 0; i < row; i++){free(b[i]);}free(b);//用new实现int ** b2 = new int*[row];for (int i = 0; i < row; i++){b2[i] = new int[col];}for (int i = 0; i < row; i++){for (int j = 0; j < col; j++){static int val = 1;b2[i][j] = val;val++;std::cout << b2[i][j] << '\t';}std::cout << std::endl;}for (int i = 0; i < row; i++){delete [] b2[i];}delete [] b2;return 0;}
0 0
- 动态申请二维数组两种方法
- C语言动态申请二维数组的两种方法
- 动态申请二维数组方法
- 动态申请二维数组的方式和遍历二维数组的两种方式
- 动态申请二维数组并释放方法
- 动态申请二维数组。
- 动态申请二维数组
- 动态申请二维数组
- 动态申请二维数组
- 动态申请二维数组
- 动态申请二维数组
- 动态申请二维数组
- 申请动态二维数组
- 动态申请二维数组
- 动态申请二维数组
- 动态申请二维数组
- 动态申请二维数组
- 动态申请二维数组
- canvas.drawArc 起始角度
- error while crawling /home/$USER: boost::filesystem::status: Permission denied: “/home$USER/.gvfs”
- C++析构函数
- OJ中------兄弟单词
- 秒杀多线程第七篇 经典线程同步 互斥量Mutex
- 动态申请二维数组两种方法
- 避免键盘挡住输入框常用的两个通知方法
- GCC编译C/C++代码
- 组合模式
- Unity 3D - 开发注意事项
- Xcode_7 iOS_9 集合视图_CollectionViewController Objective-C (9)
- Android Service详解
- MappingJackson2JsonView 与 MappingJackson2HttpMessageConverter在返回json时的区别
- apache2.4报 (OS 64)指定的网络名不再可用 ,解决方案