我有一个声明为
的数组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]
答案 0 :(得分:2)
虽然我并不是100%确信我理解你的意图,
如果GetArray
必须自己返回Object array[N]
,那么返回怎么样
来自Object*
的{{1}}?
例如:
GetArray
修改强>:
至于我看到您编辑的问题,size_t const N = 1;
Object array[N];
Object* GetArray(size_t* count)
{
*count = N;
return array;
}
的参数number
似乎被视为参考(而不是指针)。
那么,对于数组来说,如何使用引用而不是指针?
然后你可以避免麻烦GetArray
的东西
例如:
void**
答案 1 :(得分:0)
就像数字一样,你应该传递数组的地址:
GetArray(&array, &number)
但是使用C ++,你最好使用参考参数。
答案 2 :(得分:0)
数组变量是指向数组第一个元素的指针(它的值是第一个元素的地址)。
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 "&"