gpt4 book ai didi

c++ - 创建指向结构数组指针数组的指针,然后访问结构中的变量

转载 作者:行者123 更新时间:2023-11-30 05:39:22 25 4
gpt4 key购买 nike

我想我已经大致了解了如何创建和销毁它,但我找不到访问每个对象的方法。以下是我的创建方式:

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;
}

我正在正确地创建和销毁它们吗? 如何访问元素?

最佳答案

例如,要遍历二维数组,您可以使用嵌套循环

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;
}
}

尽管就其值(value)而言,我建议使用 std::vector 而不是动态分配您自己的数组

std::vector<std::vector<CCyIsoPktInfo>> data;

然后你可以这样迭代

for (auto const& row : data)
{
for (auto const& element : row)
{
std::cout << element.status;
}
}

关于c++ - 创建指向结构数组指针数组的指针,然后访问结构中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32405375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com