您的位置:首页 > 其它

二维数组指针的简单使用

2017-07-14 08:15 183 查看
指针就是可变数组的首地址,是指其包含内容的数量的可变,并且是可动态申请和释放的。

以下是三种二维数组的表现形式

(1)、int  **Ptr ;==========》》》》int Ptr[x][y]

A:表示:“一群”指向整数的指针的指针。

B:在32位平台里,都是4字节,即一个指针。

C:需要两次内存分配才能使用其最终内容。

首先,Ptr = (int**)new int *[5] ,这样分配好了以后,和(2)的意义想通了;

然后要对5个指针进行内存分配。

Ptr[0] = new int[20];
它表示为第0个指针分配20个整数,分配好以后,Ptr[0]为指向20个整数的数组。

如果没有第一次内存分配,该Ptr是个“野指针”,是不能使用的,如果没有第二次内存分配,则Ptr[0]也是个“野指针”

(2)、int   *Ptr[5] ; ==============》》》int Ptr[5][x];

A:表示:5个指向整数的指针的指针。

B:它是5个指针,所占的内存空间是5*4 = 20个字节

C:此时,编译器已经为它分配了5个指针的控件,这相当与(1)中的第一次内存分配。

(3)、int   (*Ptr)[5] ;===============》》》》 int  Ptr[x][5]

A:表示:“一群”指向5个整数数组的指针的指针。

B:在32位平台里,都是4字节,即一个指针。

C:“一群”指针,每个指针都是指向一个5个整数的数组。

如果想分配k个指针:Ptr = ( int(*)[5] )new int [ sizeof(int) * 5 * k ]      这是一次性的内存分配。分配好以后,Ptr指向一片连续的地址空间,其中Ptr[0]指向第0个5个整数数组的首地址。Ptr[1]指向第1个5个整数数组的首地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: