用数据填充未指定大小的数组
Fill Array of unspecified Size with data
所以我现在正在学习C++,我现在很困。我一直在互联网形式中研究一段时间,但找不到我的问题的解决方案。也许是因为我不知道该照顾什么。
并为可能具有误导性的标题而苦恼,但问题是:
假设我有一个名为 Data 的结构,其中包含一个 int 数组和其他一些成员
struct Data{
...
uint8_t values [];
}
现在我有一个方法测试
void test (uint8_t *buffer, size_t buffer_size)
{
...
}
在该方法中,我创建了一个数据实例,我想将存储在缓冲区中的值分配给数据实例的数组,我不知道如何做到这一点。 不确定,但也许我需要一个 指针指针?
提前感谢! 干杯
在 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]);
}
}
如果您想在"test"函数之外使用它,请记住动态分配结构数据(并返回它的指针(。 你也可以将一个额外的参数传递给 "test" 函数,并通过以下方式传递带有引用的 istanced 结构数据:
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]);
}
}
相关文章:
- 为什么用结构初始化数组需要指定结构名称
- 在将 new 与指针一起使用时,创建数组的指定长度
- 数组大于指定大小(C++)
- 为什么我的 2D 数组未定义?
- 结构数组 - 未引用的局部变量
- 具有空构造函数使数组未初始化会使计算速度变慢
- C 数组未从文件中获取正确的输入
- 使用指标后数组未修改
- 对于循环和并行数组:未声明的标识符
- C++ 成员数组未初始化
- 数组未加载 - "index out of range in objectAtIndex()"
- 数组未在此范围内声明
- C 数组未申报的标识符错误
- 二维数组未正确初始化
- 动态字符数组未提供正确的字符串长度
- 字符* 数组出现"multiple definitions"错误,但无符号字符数组未显示错误
- 结构的类数组未正确初始化
- 数组未正确分配
- 二维数组未显示正确的输出
- 数组未被默认初始化