假设我们有一个结构
struct get_query
{
char name[200];
char value[200];
};
和一个返回类型相同的函数:
struct get_query *get_array(char *str);
它返回多个元素get_query
,我这样称呼它:
struct get_query *data = get_array(str);
问题是:是否可以调用这样的东西
struct get_query data[] = get_array(str);
以便您可以找出data
. 如果可能,请描述如何。
做
并传入
count
元素的数量。如果是 C++ - 你可以使用链接数组没有赋值运算符。此外,函数不能返回数组。在 C++ 中,函数可以返回数组引用,但您仍然不能将一个数组分配给另一个数组。
在 C++ 中,您可以返回 type 的对象
std::pair<get_query *, size_t>
,即返回一对指向数组第一个元素的指针和数组中元素的数量。在 C 中,您可以自己定义这样的结构。例如,
并从函数中返回这个结构。例如
或者在 C 中,您可以向数组添加另一个元素,该元素将包含 value
NULL
。使用此边界值,您可以计算分配数组中的元素数。C++ 和 C 中的另一种方法是更改函数声明。例如,您可以通过引用将原始指针传递给函数,并从函数返回分配数组中的元素数。例如,
在 C++ 中,您可以将参数声明为引用。例子