指向指针的指针

use*_*234 6 c++

我试图p通过指针指针设置指针的内存x

int *p = 0;
int **x = &p;

*x = new int[2];

*x[0] = 1;  //p[0] = 1
*x[1] = 2;  //p[1] = 2
Run Code Online (Sandbox Code Playgroud)

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

nos*_*nos 12

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

[]优先于*.你需要先取消引用x

(*x)[0] = 1;
(*x)[1] = 1;
Run Code Online (Sandbox Code Playgroud)


tem*_*def 5

我认为你的问题是这样的

*x[1]
Run Code Online (Sandbox Code Playgroud)

手段

*(x[1])
Run Code Online (Sandbox Code Playgroud)

并不是

(*x)[1]
Run Code Online (Sandbox Code Playgroud)

第二个版本是你想要的; 它取消引用指针以获取底层数组,然后读取第二个元素.您现在拥有的代码将双指针视为指向指针数组的第二个元素的指针,查找其中的第一个指针,然后尝试取消引用它.这不是你想要的,因为指针只指向一个指针而不是两个指针.明确括起此代码应解决此问题.