首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指向指针的指针

指向指针的指针
EN

Stack Overflow用户
提问于 2011-02-17 17:58:57
回答 6查看 804关注 0票数 6

我尝试通过指向指针x的指针来设置指针p的内存

代码语言:javascript
复制
int *p = 0;
int **x = &p;

*x = new int[2];

*x[0] = 1;  //p[0] = 1
*x[1] = 2;  //p[1] = 2

为什么会因为访问冲突错误而失败?

EN

回答 6

Stack Overflow用户

发布于 2011-02-17 18:02:02

为什么会因为访问冲突错误而失败?

[]优先于*。首先需要取消对x的引用

代码语言:javascript
复制
(*x)[0] = 1;
(*x)[1] = 1;
票数 12
EN

Stack Overflow用户

发布于 2011-02-17 18:04:19

我觉得你的问题是

代码语言:javascript
复制
*x[1]

手段

代码语言:javascript
复制
*(x[1])

而不是

代码语言:javascript
复制
(*x)[1]

第二个版本是您想要的;它解除对指针的引用以获得底层数组,然后读取第二个元素。您现在拥有的代码将双指针视为指向指针数组的第二个元素的指针,查找其中的第一个指针,然后尝试取消对它的引用。这不是您想要的,因为指针只指向一个指针,而不是两个。显式地将这段代码括起来应该可以解决这个问题。

票数 5
EN

Stack Overflow用户

发布于 2011-02-17 18:17:51

在像*A[]这样的表达式中,变量A首先被索引,然后被解除引用,而您想要的正好相反,因此需要编写(*A)[]

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5027398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档