数组指针

定义二维数组

int x[3][4];

那么x[0],x[1] and x[2]为指向第一行的第一个元素的指针,指向第二行的第一个元素的指针 和 指向第三行的第一个元素的指针。

所以x为指向指针的指针。 

创建一个类型为T
的二维数组,这个数组有r o w s行和c o l s列。程序首先为指针x [ 0 ] , . . . , x [ r o w s - 1 ]申请空间,然后为
数组的每一行申请空间。在程序中操作符n e w被调用了r o w s + 1次。如果n e w的某一次调用引发
了一个异常,程序控制将转移到c a t c h块中,并返回f a l s e。如果没有出现异常,数组将被成功创
建,函数M a k e 2 D A r r a y返回t r u e。对于所创建的数组x中的元素,可以使用标准的用法来引用,
如x [ i ] [ j ] ,其中0≤i<r o w s , 0≤j<c o l s。

---------------------------------------------

template <class T>
bool Make2DArray ( T ** &x, int rows, int cols)
{// 创建一个二维数组
t r y {
/ /创建行指针
x = new T * [rows];
/ /为每一行分配空间

for (int i = 0 ; i < rows; i++)
x[i] = new int [cols];
return true;
}
catch (xalloc) {return false;}
}

char **P;//指向指针的指针。。

Make2DArray(P,3,4);

//删除二维数组的时候需注意
template <class T>
void Delete2DArray( T ** &x, int rows)
{// 删除二维数组x
/ /释放为每一行所分配的空间
for (int i = 0 ; i < rows ; i++)
delete [ ] x[i];
/ /删除行指针
delete [] x;
x = 0;
}

 

完。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值