通过function-param获取数组
Get an array via function-param
我有一个数组声明为
Object array[N];
和函数
void GetArray(void** array, size_t count)
{
*array = array;
*count = N;
}
我试图用下面的代码调用函数:
size_t number;
GetArray(XXX, &number);
XXX在哪里我应该传递什么来获得数组?谢谢你
编辑1
Object *array
GetArray((void**)array, number)
编辑2
static Object array[N]
虽然我不能百分之百确信我理解了你的意图,如果GetArray
必须返回Object array[N]
本身,那么返回Object*
from GetArray
例如:
size_t const N = 1;
Object array[N];
Object* GetArray(size_t* count)
{
*count = N;
return array;
}
编辑:
就我所看到的你编辑过的问题而言,GetArray
的论点number
似乎被视为一个参考(不是指针)。那么,对于数组来说,如何使用引用而不是指针呢?然后你可以避免麻烦的void**
的东西。
例如:
void GetArray(Object*& arr, size_t& count)
{
arr = array;
count = N;
}
int main() {
size_t number;
Object *arr;
GetArray(arr, number);
for ( size_t i = 0; i < number; ++ i ) {
Object o = arr[i]; // example
}
}
就像number一样,你应该传递数组的地址:
GetArray(&array, &number)
但是在c++中,你最好使用引用形参
数组变量是指向数组第一个元素的指针(它的值是数组第一个元素的地址)。
void GetArray(Object* dest, size_t* count)
{
dest = source; // source's value is an address; just copy it to dest
*count = N;
}
...
GetArray(array, &number); // array's value is an address so you don't need "&"
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 使用指针从C++中的数组中获取最大值
- 获取字符串的长度并将其分配给数组
- 数组长度,为什么从命令行获取时不能使用它?
- 如何在 nlohmann 的 json 库中获取数组长度?
- 在c++中获取两个大int,并将它们存储在数组中
- 如何在C++中获取二维数组中最少的一列数?
- 从 numpy 数组获取指针以将图像发送到C++
- 指针数组.获取指针元素的值
- 循环以使用 cstring 数组 c++ 获取用户输入
- 一种从元组/数组获取参数包的方法
- 如何使用数组获取输入,并将其存储在record.h类的主类中的变量中
- 如何使用数组获取命令行参数
- 从 JSON 数组获取天气
- 布尔数组获取意外的默认值
- 填充列表<>使用数组获取错误的数字
- 如何在C++中为矢量数据结构中的二维数组获取用户输入,而不使用行和列上的两个for循环
- 在自定义库中操作2d C++数组-获取行数
- 使用数组获取测试结果
- 数组c++获取值