[英]Create a pointer to an array of pointers to arrays of structs and then access the variable in a struct
我想我已经了解了如何创建和销毁它的总体思路,但是我找不到访问每个对象的方法。 这是我的创建方式:
CCyIsoPktInfo **arrayOfPointers = new CCyIsoPktInfo*[QueueSize];
for (int i = 0; i < QueueSize; ++i)
{
arrayOfPointers[i] = new CCyIsoPktInfo[PACKETS_PER_TRANSFER];
}
这是我如何销毁它:
for (int i = 0; i < QueueSize; ++i)
{
delete[] arrayOfPointers[i];
}
delete[] arrayOfPointers;
但是我需要访问数组中的每个nth_Object.status,将nth_Pointer赋予该数组。 因此,总体思路如下:
for (int nth_Object = 0; nth_Object < PACKETS_PER_TRANSFER; ++nth_Object)
{
var[nth_Object] = (*arrayOfPointers[nth_Pointer]).[nth_Object].status;
}
我正在正确创建和销毁它们吗? 如何访问元素?
要遍历2D数组,可以使用嵌套循环,例如
for (int nth_Object = 0; nth_Object < QueueSize; ++nth_Object)
{
for (int nth_Pointer = 0; nth_Pointer < PACKETS_PER_TRANSFER; ++ nth_Pointer)
{
std::cout << arrayOfPointers[nth_Object][nth_Pointer].status;
}
}
虽然物有所值,但我还是建议您使用std::vector
而不是动态分配自己的数组
std::vector<std::vector<CCyIsoPktInfo>> data;
然后你可以像
for (auto const& row : data)
{
for (auto const& element : row)
{
std::cout << element.status;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.