从函数返回可变长度数组
Return variable length array from function
在C#中已经有一段时间了,我不知道如何在C++(在Arduino草图中)中做到这一点
我想从库中调用一个函数,该函数返回未知长度的字节列表。有点像这样:
byte devices[] = MyLib::EnumerateDevices();
在图书馆:
byte[] MyLib::EnumerateDevices()
{
int count = 0;
//some code that modifies count
static byte *temp = new byte[count]; // Assume count is 2 here
temp[0] = 42;
temp[1] = 44;
return temp;
}
很明显,我所有的指针和指针要么不见了,要么放错了地方。。。
帮助?
Dave
这就是向量的用途:
std::vector<int> func()
{
std::vector<int> r;
r.push_back(42);
r.push_back(1337);
return r;
}
矢量有一个size()
成员函数,它会返回您想要的内容。
如果你想从矢量中取出一个指针,那么写
const int *p = &vec[0];
(很明显,用你专门化向量的任何类型来代替int
。)
不能在C或C++中返回数组。您可以返回一个指针,但在这种情况下,您还需要返回大小。使用std::vector<int>
会更容易。
相关文章:
- C++中的高效循环缓冲区,它将被传递给C样式数组函数参数
- 打印 2D 动态数组 c++ 函数
- C++数组函数
- 在数组函数指针中调用void
- 数组函数似乎没有找到最大值
- 使用数组函数和循环求解伪元编码|C
- 在头文件中的函数原型中获取指针数组:函数声明为 void
- 数组函数错误输出
- 读取文件,然后创建数组函数C++
- 指针数组函数参数-奇怪的行为
- 二维数组 - 函数
- "return"没有从数组函数返回正确的值
- 数组函数问题
- 数组函数的大小返回 int 的大小而不是数组
- 从数组函数中删除元素
- 如何从C++中最好地调用具有C99风格数组函数签名的函数
- 追加/打印/插入数组c++函数问题
- 如何将数组函数转换为指针函数
- 多维数组函数输出垃圾
- C++:数组函数的递归最大值