如果您需要从函数返回struct
,则通常会返回一个指向struct
的指针。返回结构数组或结构指针数组?
如果然后想返回结构的数组,是它建议:
- 回报结构的阵列(指针的第一个元素)
- 或返回结构指针数组?
我已经绘制以下两个选项的图:
1:
2:
鉴于下列结构定义
struct values {
int a;
int b;
};
这里是用于从两个选项访问结构的字段一些示例代码:
选项#1:
struct values *vals = get_values1();
printf("%d, %d\n", values[0].a, values[1].b);
选项#2:
struct values **vals = get_values2();
printf("%d, %d\n", values[0]->a, values[1]->b);
你有什么疑问? –
@GrijeshChauhan什么是最好的?我选择哪一个都不重要? – Tyilo
我看到不使用版本1的唯一问题是,它可能更容易识别第二个版本中的结构数量,因为'NULL'指针可以用作停止元素,而在第一个版本中它可能会无法定义此限值。 – alk