如何在向量内的结构内打印指向的整数数组

时间:2014-10-14 00:08:43

标签: c++ arrays pointers vector

struct x {
    unsigned int y;
    unsigned int *ptr;
};

std::vector<struct x> z;

我想访问ptr指向的整数数组。 z[0].y将从向量中的第一个结构中正确返回元素y

如何在第一个结构体内打印ptr指向的数组?

2 个答案:

答案 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