令我困惑多时的二维指针分配问题总结
来源:互联网 发布:ubuntu kernel source 编辑:程序博客网 时间:2024/06/06 02:13
int a1[M][N];
int *a2[M];
int (*a3)[N];
int **a4;
都可以定义二维数组;但是区别很大。二维及多维数组与一维数组不一样,是必须动态申请和释放内存的。
都可以通过a[i][j]来访问。
最难懂的是 int(*a3)[N]的理解。它的意义是"一群" 指针,
每个指针都是指向一个 N 个整数的数组。分配好以后,Ptr 指向一片连续的地址空间,
其中 Ptr[ 0 ] 指向第 0 个 N个整数数组的首地址,Ptr[ 1 ] 指向第
1 个 N个整数数组的首地址。
分配内存如下:
int a1[4][3];
int *a2[4];
int (*a3)[3];
int **a4;
int i,j;
//a2是一个大小为M的数组,存放指向int型的指针;当定义他的时候,编译器就分配了M个int指针型的内存空间
for(i=0;i<4;i++)
a2[i]=(int *)new int*[sizeof(int*)*3];
//首先,a3是一个指针,指向一组(指向包含M个整型数据的指针)的指针
a3=(int(*)[3])new int[sizeof(int)*12];
//在a4定义过程中,编译器并不对其进行内存的分配,因此必须自己管理其内存的分配。
for(i=0;i<4;i++)
a4=(int **)new int *[sizeof(int*)*4];
for(i=0;i<4;i++)
a4[i]=(int *)new int[sizeof(int)*3];
- 令我困惑多时的二维指针分配问题总结
- 困扰我多时的500错误问题
- 二维字符数组与二维整型数组在内存中的分配及指针的问题
- C语言二维数组的分配(记录我的指针引用错误)
- 二维指针的malloc内存分配
- 二维指针分配空间
- 关于一个指针问题的困惑
- 指针数组,数组指针,二维数组的动态内存分配
- 指针 二维数组的问题
- 二维数组的指针问题
- 我对C++指针的困惑……
- char ** str的使用方法:动态内存分配-------二维指针
- 二维数组的分配以及数组指针数组
- 给二维指针分配内存和[][]操作符的重载
- 又困惑了,指针问题
- 困扰我多时的s2008下配置OpenGL的问题终于解决了
- 我的困惑
- 我的困惑
- 开发板上rmmod卸载模块必须创建/lib /modules/2.6.30.4这样一个空目录
- 55个常遇到的面试问题
- 下一个目标---Toeic
- Ruby 的资源站点和开发工具列表
- 互联网信息安全与加密技术
- 令我困惑多时的二维指针分配问题总结
- 诸神之战
- csdn新人
- PostgreSQL 备份与恢复示例
- [引]C#参考跳转语句(break,continue,goto,return,throw)
- webkit Trident Gecko 浏览器内核引擎三分天下
- mysqlreport 工具的使用
- 制作交叉编译file工具
- 安装qt, pyqt