gpt4 book ai didi

c++ - 用数据填充未指定大小的数组

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:12 25 4
gpt4 key购买 nike

所以我现在正在学习 C++,而且我现在很困。一段时间以来,我一直在研究互联网表格,但找不到解决我的问题的方法。也许是因为我不知道要照顾什么..

很抱歉标题可能具有误导性,但问题是:

假设我有一个名为 Data 的结构,其中包含一个 int 数组和一些其他成员

struct Data{
...
uint8_t values [];
}

现在我有一个方法测试

void test (uint8_t *buffer, size_t buffer_size)
{
...

}

在那个方法中,我创建了一个 Data 实例,我想将缓冲区中存储的值分配给 Data 实例的数组,但我不知道如何做到这一点。不确定,但也许我需要一个指针指针?

提前致谢!干杯

最佳答案

在 C++ 中,您可以使用 STL std::vector<>。您可以在以下位置声明它:

struct Data{
...
std::vector<uint8_t> values;
}

然后在方法测试中:

void test (uint8_t *buffer, size_t buffer_size)
{
...
struct Data istanceData;
for (int i=0 ; i < buffer_size; ++i){
istanceData.values.push_back(buffer[i]);
}
}

如果您想在“测试”函数之外使用它,请记住以动态方式分配结构数据(并返回它的指针)。您还可以将一个额外的参数传递给“测试”函数,并以这种方式传递带引用的分布式结构数据:

void test (uint8_t *buffer, size_t buffer_size, struct Data &instanceData)
{
...
for (int i=0 ; i < buffer_size; ++i){
istanceData.values.push_back(buffer[i]);
}
}

关于c++ - 用数据填充未指定大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59337870/

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