我试图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)
我认为你的问题是这样的
*x[1]
Run Code Online (Sandbox Code Playgroud)
手段
*(x[1])
Run Code Online (Sandbox Code Playgroud)
并不是
(*x)[1]
Run Code Online (Sandbox Code Playgroud)
第二个版本是你想要的; 它取消引用指针以获取底层数组,然后读取第二个元素.您现在拥有的代码将双指针视为指向指针数组的第二个元素的指针,查找其中的第一个指针,然后尝试取消引用它.这不是你想要的,因为指针只指向一个指针而不是两个指针.明确括起此代码应解决此问题.
| 归档时间: |
|
| 查看次数: |
802 次 |
| 最近记录: |