如何正确访问指向二维数组的指针的元素
How to access elements of a pointer to 2 dimensional array correctly?
如何使用指向二维数组的指针访问该数组的元素?
std::recursive_mutex *(*A)[2];
std::recursive_mutex *B[2];
B[0] = new std::recursive_mutex[some_size];
B[1] = new std::recursive_mutex[some_size];
A = &B;
//accessing
//A[0][0]
//A[1]
//A[1][0]
//will not work (since the pointers do not point to the same locations as
//B[0][0]
//B[1]
//B[1][0]
额外的问题:有更好的方法初始化a吗?(不使用std::vector)
您的问题是忘记取消引用A,因为它是指向B的指针。
#include <mutex>
int main(int argc, char* argv[])
{
size_t some_size = 5;
std::recursive_mutex *(*A)[2];
std::recursive_mutex *B[2];
B[0] = new std::recursive_mutex[some_size];
B[1] = new std::recursive_mutex[some_size];
A = &B;
auto& x = A[0][0]; // resolved to be std::recursive_mutex*&
auto& y = (*A)[0][0]; // resolved to be std::recursive_mutex&
return 0;
}
正如你所看到的,当你做A[0][0]
时,我们得到了一个指向互斥体的指针,你想要的是互斥体本身,你可以通过取消引用a来得到,这样做:(*A)[0][0]
。
相关文章:
- 调整大小后指向元素值的指针unordered_map有效?
- 当该数组的索引中没有元素时,指针指向什么?
- 如何在基类指针向量的元素上应用重载的多态函数
- C++:添加新结构时,结构指针向量中的所有元素都会更新
- C++默认情况下,指针类型数组的元素是否保证初始化为 nullptr?
- 删除指针数组 (C++) 中的元素
- 从指向结构数组的指针中提取元素
- 指向数组基址的指针而不是指向第一个元素的指针有什么优点?
- 获取指向指针的指针元素 (c++)
- 经过最后一个数组元素末尾的指针是否应该等于超过整个数组末尾的指针?
- 存储指向动态数组元素的指针
- 通过作为指向 C++ 函数的指针传递来访问 std::array 元素的正确方法是什么?
- 取消引用C++中的指针元素
- 指针数组.获取指针元素的值
- C++访问带有迭代器的向量的指针元素
- C++:指针元素的向量在销毁时是否会自动释放每个指针所指向的动态内存?
- 打印整数指针元素时的结果不同
- 访问 c++ 的矢量指针元素
- 我必须手动删除QSet的每个(指针)元素吗?
- push_back在一行中指向Vector的非指针元素