关于二维数组分配(c/c++)
来源:互联网 发布:mac秋冬色号推荐 编辑:程序博客网 时间:2024/05/21 19:21
二维数组在栈上的分配只需要定义声明就可以了,那么如果是动态分配在堆上呢?
使用二级指针(指针的指针):
int **p = new int *[ROWS]; for(int i=0;i<ROWS;i++) p[i] = new int[COLUMNS];
使用指针数组:
char* p[ROWS]; for (int i = 0; i<ROWS; i++) { p[i] = new char[COLUMNS]; }
类似指针数组,先定义一维,再定义另一维
typedef char rowData[COLUMNS]; rowData* p = new rowData[ROWS]; for (int i = 0; i < ROWS;i++) { std::snprintf(p5[i],sizeof(p5[i]),"%s","rowData Str..."); } for (int i = 0; i < 20; i++) { std::printf("%s\n", p5[i]); }
或者这样 (数组指针)
const int column = 3; int row = 2; int(*xx1)[column] = new int[row][column]; for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { xx1[i][j] = (i + 1) * 10 + j; std::printf("%d,", xx1[i][j]); } std::printf("\n"); }
总的来说,除了二级指针方式之外,其余方式都要先固定其中一个维度,也就是按静态分配,在栈上…
C只支持“数组的数组”这一概念,如果你把它单纯的当作”多维数组”来理解,估计会出问题…
具体可以看下《C专家编程》,里边关于数组和指针的章节,第九、十章,做了很好的描述
数组指针和函数形参的转化可参考下图^_^
阅读全文
1 0
- 关于二维数组分配(c/c++)
- 一维/二维动态数组分配(C语言)
- C语言分配与回收二维数组
- C语言二维数组动态内存分配
- C语言--关于二维数组
- C/C++动态分配二维数组(在堆上分配二维数组内存)
- C++/C动态二维数组内存分配举例
- 一个关于C语言二维数组问题
- C 语言 关于二维数组 传参 总结
- C语言:关于二维数组做形参
- C/C++中为二维数组分配内存
- C语言二维数组矩阵动态内存分配
- C语言二维数组矩阵动态内存分配
- 用C语言分配动态二维数组(结构体实现)
- C/C++中为二维数组分配内存
- C/C++动态二维数组的内存分配和释放 .
- C/C++动态二维数组的内存分配和释放
- C/C++中的二维数组动态内存分配与释放
- jQuery扩展插件——$.extend(obj)与$.fn.extend(obj)
- TortoiseGit--小乌龟git项目中的使用简介
- Linux 用户操作-解锁
- redhat7挂载新硬盘
- 禁止微信浏览器下拉回弹的效果。
- 关于二维数组分配(c/c++)
- Mac安装HomeBrew
- 添加native和java系统服务
- Redis配置详解
- 【windows】C++网络编程一
- 第二周(1) App模块划分与详细设计初步进行
- 选择排序
- WebView加下拉刷新的时候,如果WebView内部有上下滑动的列表,会与下拉刷新的滑动冲突
- vue2.0中.vue文件页面跳转之.$router.push