C语言二维指针 有一个二维指针**a,如何给它赋初值。

 我来答
zchuiz1986
2012-06-01 · TA获得超过526个赞
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:75.2万
展开全部
不建议直接给指针赋值,除非是NULL;
二维指针也是指针,如你所写,a只不过是指向另一个指针的指针,归根结底还是指针,不因为它是多维的就会有什么变化;
例如:
int** a = NULL; //赋初值为空,这样做绝对是好习惯
或者:
int a;
int* b = &a;
int** c = &b;
再或者就是个二维数组:
int a[ 10 ][ 10 ];
int** b = a; //其实a就是一个二维指针
匿名用户
2012-06-01
展开全部
int **a,x = 3, y = 4;
a = new int*[x];
for (int i = 0;i < x; i++)
{
a[i] = new int[y];
}
下面就可以像a[3][4]一样赋初值了
更多追问追答
追问
如果想用完以后释放内存,应该怎么做?麻烦你了……
追答
for (i = 0; i < x; i++)
{
delete [] a[i];
}
delete [] a;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kingfeng588
2012-06-01 · TA获得超过2494个赞
知道大有可为答主
回答量:1475
采纳率:50%
帮助的人:1783万
展开全部
int a=3;
int *p=&a; // p中存放了a的地址
int **pp=&p; //pp中存放了p的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun_siliang
2012-06-01 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4425万
展开全部
//**a不是二维指针,是指向指针的指针,可以如下面形式赋值。
int b[3][2];
int **a=&b[0][0];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式