struct x {
unsigned int y;
unsigned int *ptr;
};
std::vector<struct x> z;
我想访问ptr
指向的整数数组。
z[0].y
将从向量中的第一个结构中正确返回元素y
。
如何在第一个结构体内打印ptr指向的数组?
答案 0 :(得分:0)
z[0].ptr
将从向量中的第一个结构返回ptr
。要访问此指向的数组元素,请使用z[0].ptr[n]
。
答案 1 :(得分:0)
与访问z[0].y
的方式相同:
z[0].ptr;
但是,如果要迭代并打印其元素,则必须知道数组大小。您可能希望在unsigned int size;
内添加struct
。
您可以照常访问数组的元素:
for(unsigned int i=0;i<z[0].size;i++)
std::cout << z[0].ptr[i] << std::endl;
如果您的阵列可能会发生变化,并且您不想存储其他变量,请像使用std::vector
一样存储结构。
请记住首先使用new[]
创建数组,然后在您不需要时使用delete[]
删除其内容。试图访问不属于您的内存,将导致undefined behaviour。